Se connecter avec Microsoft
S'identifier ou créer un compte.
Bonjour,
Sélectionnez un autre compte.
Vous avez plusieurs comptes
Choisissez le compte avec lequel vous voulez vous connecter.

Résumé

Lorsque vous générez une DLL à l’aide de la version 64 bits du compilateur de Microsoft Visual C++ et éditeur de liens, l’éditeur de liens LNK4197 numéro d’erreur peut s’afficher si une fonction a été déclarée à l’exportation plus d’une fois.

Symptômes

La sortie de l’éditeur de liens peut être semblable au suivant :

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 

Cause

L’éditeur de liens LNK4197 numéro d’erreur est généré lorsqu’une fonction a été déclarée pour l’exportation plus d’une fois. Une fonction est déclarée à l’exportation dans une des manières suivantes :

  • La fonction est déclarée à l’aide du mot clé __declspec (dllexport) dans votre fichier de code source C :

    __declspec(dllexport) int DllSample() {   return 42;}
  • La fonction est déclarée à l’aide d’une définition de module (. Fichier DEF) :

    EXPORTS   DllSample

Cette erreur de l’éditeur de liens peut se produire plus fréquemment lorsque les deux le mot clé __declspec (dllexport) et un. Fichier DEF permettent de définir le même nom de fonction dans un. Projet DLL.

Résolution

Pour résoudre ce problème, définir les fonctions exportées qu’une seule fois, soit en utilisant le mot clé __declspec (dllexport) , soit en utilisant un. Fichier de définition. N’utilisez pas ces deux méthodes.

Statut

Ce comportement est inhérent au produit.

Informations supplémentaires

La déclaration multiple d'une fonction pour l'exportation peut ne pas produire l'erreur de l'éditeur de liens qui est décrite dans la section « Symptômes » de cet article dans les versions 32 bits du compilateur et de l'éditeur de liens Microsoft Windows C++. Toutefois, Microsoft vous recommande de ne définir les fonctions exportées qu'une seule fois dans les versions 32 bits et 64 bits du compilateur et de l'éditeur de liens de Windows C++.

Besoin d’aide ?

Vous voulez plus d’options ?

Explorez les avantages de l’abonnement, parcourez les cours de formation, découvrez comment sécuriser votre appareil, etc.

Les communautés vous permettent de poser des questions et d'y répondre, de donner vos commentaires et de bénéficier de l'avis d'experts aux connaissances approfondies.

Ces informations vous ont-elles été utiles ?

Dans quelle mesure êtes-vous satisfait(e) de la qualité de la langue ?
Qu’est-ce qui a affecté votre expérience ?
En cliquant sur Envoyer, vos commentaires seront utilisés pour améliorer les produits et services de Microsoft. Votre administrateur informatique sera en mesure de collecter ces données. Déclaration de confidentialité.

Nous vous remercions de vos commentaires.

×