Visual C++: error LNK2001: unresolved external symbol [Résolu]

Signaler
Messages postés
17
Date d'inscription
mardi 28 décembre 2004
Statut
Membre
Dernière intervention
20 mars 2006
-
Messages postés
13
Date d'inscription
samedi 28 janvier 2006
Statut
Membre
Dernière intervention
28 février 2006
-
Bonjour,
J'utilise une librairie (qui gère les sockets: DllSocket) pour faire un serveur. J'ai ajouté au projet du serveur Dllimport.h que j'ai inclus là où il fallait. J'ai ajouté le chemin pour accéder à la librairie dans Project/Settings/Link.
Quand je compile, j'obtiens ce message:
ServeurFonc.obj : error LNK2001: unresolved external symbol _ServeurInitSocket
.\Debug/Serveur.exe : fatal error LNK1120: 1 unresolved externals
J'ai vérifié la casse
de la fonction ServeurInitSocket, le chemin pour accéder à librairie, .... J'ai regardé sur le site de msdn pour voir les causes potentieles de cette erreur. Mais,
tout a l'air d'être correct!
Si qq'un a une idée, je lui serai reconnaissant.

Merci

6 réponses

Messages postés
13
Date d'inscription
samedi 28 janvier 2006
Statut
Membre
Dernière intervention
28 février 2006

Etrange effectivement (remarque à la con mais ça m'est arrivé plein de fois, les settings de link sont les mêmes pour le mode debug et release ?)

Sinon de mémoire j'avais eu un soucis semblable j'avais vérifié les .lib et leurs chemins et en ajoutant un #pragma comment(lib,"malib.lib"); c'était passé...
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
15
Ouvre ta librairie elle-même avec un éditeur de texte et recherche ServeurInitSocket. Si tu ne le trouve pas, bien c'est que cette fonction n'existe pas du moin, pas dans cette libraire.
Messages postés
17
Date d'inscription
mardi 28 décembre 2004
Statut
Membre
Dernière intervention
20 mars 2006

Cette fonction existe bien dans la librairie puisque j'ai utilisé la
même librairie et la même fonction dans un autre programme.
Messages postés
13
Date d'inscription
samedi 28 janvier 2006
Statut
Membre
Dernière intervention
28 février 2006

tu n'aurais pas un .lib à spécifier dans les settings de ton projet ?
Messages postés
17
Date d'inscription
mardi 28 décembre 2004
Statut
Membre
Dernière intervention
20 mars 2006

j'ai bien DllSocket.lib dans la liste des librairies + le chemin est bon. En effet, si je renomme DllSocket.lib, VC++ m'affiche une erreur comme quoi il ne trouve pas DllSocket.lib.
Dans l'un de mes messages précédents, j'ai dit que j'ai utilisé la même Dll avec un programme1 avec succés. j'ai même comparer les options de Project/Settings/Link & C/C++. y a pas de différence!
J'y comprends rien.
Messages postés
17
Date d'inscription
mardi 28 décembre 2004
Statut
Membre
Dernière intervention
20 mars 2006

j'ajouterai un élément important: la DLL est en c++, le serveur est en C. J'ai ajouté un fichier DllImport.h avec les proto de la DLL. Dans ce fichier j'ai inclus les instructions suivantes:
#ifdef __cplusplus
extern "C"
{
#endif //__cplusplus