Prob socket en C

Fermé
AsKy Messages postés 998 Date d'inscription vendredi 25 janvier 2002 Statut Contributeur Dernière intervention 21 octobre 2006 - 9 févr. 2003 à 19:02
 HeavyIsNotDead - 10 févr. 2003 à 22:26
bonjour a tous

j'essaie depuis un bout de tps de faire une application socket en C, là j'ai tapé un truc qui me semble pas mal, mais quand je veux le compiler , visual C++ me met le message suivant:

--------------------Configuration: socket - Win32 Debug--------------------
Linking...
socket1.obj : error LNK2001: unresolved external symbol _closesocket@4
socket1.obj : error LNK2001: unresolved external symbol _connect@12
socket1.obj : error LNK2001: unresolved external symbol _htons@4
socket1.obj : error LNK2001: unresolved external symbol _socket@12
socket1.obj : error LNK2001: unresolved external symbol _gethostbyname@4
Debug/socket.exe : fatal error LNK1120: 5 unresolved externals
Error executing link.exe.

je comprends rien et ds la msdn c'est aussi en anglais et c'est pas plus clair...
si qqun pouvait m'aider...
merci beaucoup!

AsKy
# Le travail est sacré, n'y touches pas!!! #

4 réponses

pizzabiere Messages postés 28 Date d'inscription vendredi 7 février 2003 Statut Membre Dernière intervention 14 février 2003
9 févr. 2003 à 20:43
sans le code ça va être dur, néanmoins, "unresolved external symbol" semble indiquer qu'une bibliothèque n'a pas été déclarée correctement (problème au niveau des include).

@ +
Pizzabiere
0
AsKy Messages postés 998 Date d'inscription vendredi 25 janvier 2002 Statut Contributeur Dernière intervention 21 octobre 2006 65
10 févr. 2003 à 11:49
Pourtant gethostbyname, htons &co sont ds la bibli winsock.h que j'ai correctement déclaré au début.
si tu veux le code n'est pas tres long je peux te le mailer.
merci d'avoir répondu!

Lord AsKy
# Le travail est sacré, n'y touches pas!!! #
0
Krizniak Messages postés 26 Date d'inscription lundi 27 janvier 2003 Statut Membre Dernière intervention 10 février 2003 4
10 févr. 2003 à 11:56
Il ne suffit pas d'inclure le .h pour pouvoir utiliser une bibliothèque donnée.

Le .h, bien souvent, ne contient que les déclarations (Il existe une fonction, dont le nom est trucmuche, qui attend les paramètres bidule de type truc, machin de type chose et brol de type indéterminé, et qui retourne une valeur de type droledemachintrucaubiduledechose)...
Maintenant, il faut que ton système puisse savoir quoi faire lorsqu'on appele cette fonction, et ceci est bien souvent mémorisé dans un fichier .lib fourni en même temps que le .h.


Pour compiler, il faudra que tu ajoute (à la main) le nom du .lib utilisé (voir le MSDN, dans une des fonctions incriminées, tu verras un .lib dans le bas de la description de la fonction) dans la zone de texte adéquate des options de ton projet...

Ca devrait alors pouvoir compiler sans erreur, comme pizzabiere le disait : c'est un message typique de non-complétude dans les définitions de l'édition des liens...

A+

Krizniak
Mon crédo : "Aide-toi, le ciel t'aidera..."
0
HeavyIsNotDead
10 févr. 2003 à 22:26
salut,
Pour ton problème, il faut utiliser la lib ws2_32.lib
Dans le menu Project, Settings onglet link, Section [Object/Library module],
ajout la lib et recompile.


A+
0