Informații interne de asistență Microsoft

Număr eroare: 101959 (Visual Studio)

Rezumat

La compilarea un DLL utilizând versiunea pe 64 de biți de Microsoft Visual C++ compilator și Linker, este posibil să primiți Linker număr eroare LNK4197 dacă o funcție a fost declarate la export mai mult decât o singură dată.

Simptome

Ieșire Linker poate fi asemănător cu următorul:

C:\>link /NOLOGO /def:Sample.def /pdb:Sample.pdb /out:Sample.dll  Sample.objSample.obj : warning LNK4197: export 'DllSample' specified multiple times; using first specification   Creating library Sample.lib and object Sample.exp 

Cauză

Număr eroare LNK4197 linker-ul este generat atunci când o funcție a fost declarate la export mai mult decât o singură dată. O funcție este declarate la export în una dintre următoarele moduri:

  • Funcția este declarat utilizând cuvinte cheie __declspec(dllexport) în fişierul sursă C:

    __declspec(dllexport) int DllSample() {   return 42;}
  • Funcția este declarat utilizând o definiție de module (. Fişierul definiţie):

    EXPORTS   DllSample

Această eroare Linker se poate produce cel mai frecvent atunci când atât __declspec(dllexport) cuvinte cheie și o. Fişierul definiţie sunt folosite pentru a defini cu același nume de funcție în o. Proiect DLL.

Rezolvare

Pentru a rezolva acest comportament, definiți de funcții exportate numai o singură dată, prin utilizarea __declspec(dllexport) cuvântul cheie sau utilizând un. Fişierul definiţie. Nu utilizați ambele dintre aceste metode.

Stare

Acest comportament este proiectat.

Mai multe informații

Declara o funcție de export mai multe ori nu pot produce eroarea Linker care este descrisă în secțiunea "Simptome" din acest articol în versiunile de 32 de biți de Microsoft Windows compilator C++ și Linker. Cu toate acestea, Microsoft recomandă ca definiţi function exporturi numai o singură dată în versiunile atât 32 de biți și 64 de biți de Windows compilator C++ și Linker.

Aveți nevoie de ajutor suplimentar?

Extindeți-vă competențele
Explorați instruirea
Fiți primul care obține noile caracteristici
Alăturați-vă la Microsoft Insider

V-a fost de ajutor această informație?

Cât de mulțumit sunteți de calitatea traducerii?

Ce v-a afectat experiența?

Aveți feedback suplimentar? (Opțional)

Vă mulțumim pentru feedback!

×