Conectați-vă cu Microsoft
Conectați-vă sau creați un cont
Salut,
Selectați un alt cont.
Aveți mai multe conturi
Alegeți contul cu care doriți să vă conectați.

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?

Doriți mai multe opțiuni?

Explorați avantajele abonamentului, navigați prin cursurile de instruire, aflați cum să vă securizați dispozitivul și multe altele.

Comunitățile vă ajută să adresați întrebări și să răspundeți la întrebări, să oferiți feedback și să primiți feedback de la experți cu cunoștințe bogate.

Au fost utile aceste informații?

Cât de mulțumit sunteți de calitatea limbajului?
Ce v-a afectat experiența?
Apăsând pe Trimitere, feedbackul dvs. va fi utilizat pentru a îmbunătăți produsele și serviciile Microsoft. Administratorul dvs. IT va avea posibilitatea să colecteze aceste date. Angajamentul de respectare a confidențialității.

Vă mulțumim pentru feedback!

×