Lefoudeboard
Messages postés11Date d'inscriptionvendredi 24 octobre 2008StatutMembreDernière intervention18 mars 2009
-
31 oct. 2008 à 09:09
fregolo52
Messages postés1115Date d'inscriptionmercredi 15 juin 2011StatutMembreDernière intervention 6 mai 2021
-
31 oct. 2008 à 11:05
Bonjour,
Pour une application j'ai besoin d'implémenter un serveur et un client UDP. Je n'ai pas de problème en ce qui concerne les fonctions à utiliser. En revanche, j'ai des problème au niveau du link des librairie.
J'utilise Visual Studio 2008
J'ai mis le #include <winsock2.h>
J'ai ajouté ws2_32.lib au linker pour la compilation (additional dependencies).
Lors du linking j'obtiens l'erreur suivante:
fonctions.obj : error LNK2019: unresolved external symbol __imp__htonl@4 referenced in function "void __cdecl saisir_port(struct sockaddr_in *)" (?saisir_port@@YAXPAUsockaddr_in@@@Z)
et ça pour chaque fonction du socket que j'utilise (listen, sendto, recvfrom, inet_addr, etc).
fregolo52
Messages postés1115Date d'inscriptionmercredi 15 juin 2011StatutMembreDernière intervention 6 mai 20213 31 oct. 2008 à 09:34
Salut,
J'ai une petite appli de test (MFC), et j'ai pas de souci, je dirais même que ws2_32.lib est par défaut (contrairement à VC6).
Quel est ton genre de projet ? MFC,Win32, console ?
Lefoudeboard
Messages postés11Date d'inscriptionvendredi 24 octobre 2008StatutMembreDernière intervention18 mars 2009 31 oct. 2008 à 10:19
Je ne fais pas de faute de frappe... non je déconne, mais j'ai bien vérifié.
Par contre j'ai essayé autre chose et ça devient vraiment louche:
Sur mon PC j'ai visual studio c++ 2008, j'ai copier le projet sur un autre PC avec Visual C++ 6.0 et ça marche (en ajoutant ws2_32.lib dans les dépendances du linker)
Où doit se trouver le fichier ws2_32.lib? on le laisse dans system32 et le linker va le chercher ou il faut l'avoir dans le dossier des codes sources? et pour winsock2.h?
Et est-ce que l'ajout de la dépendance est casse sensitive? j'ai fait quelques essais et ça change rien.
Dans les options du linker est-ce qu'il faut changer "Additional library Directories"?
L'interface de modification des propriétés du projet est différentes entre la version 2008 et la 6.0; peut-etre qu'il faut changer autre chose?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Lefoudeboard
Messages postés11Date d'inscriptionvendredi 24 octobre 2008StatutMembreDernière intervention18 mars 2009 31 oct. 2008 à 10:32
En fait je me demande si j'ai pas un problème d'imbrication des includes (ça devrait pas comme ça marche sur l'autre PC mais bon..)
J'ai 3 fichiers:
=> main.cpp:
#include <winsock2.h>
#include <stdio.h>
#include "fonctions_utilisateur.h"
void main() {
}
fregolo52
Messages postés1115Date d'inscriptionmercredi 15 juin 2011StatutMembreDernière intervention 6 mai 20213 31 oct. 2008 à 10:40
En effet tu dois avoir un pb avec ton environnement.
Je viens de regardé dans les options de VS2008, rubrique VC++ Directories. Je ne sais pas trop ce que tu as dedans, mais pas evident de comparer nos config.
Sinon, as-tu essayé de claqué le chemin complet ? "C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib\ws2_32.lib" ?
J'ai vc6 et VS 2008 sur la meme machine, donc j'ai du mal savoir si "C:\Program Files\Microsoft SDKs\Windows" existe avec VS2008 seul.
Sinon, méthode pas propre, tu rapatries la lib du poste vc6.
fregolo52
Messages postés1115Date d'inscriptionmercredi 15 juin 2011StatutMembreDernière intervention 6 mai 20213 31 oct. 2008 à 10:42
Ah oui gaffe à winsock2.h qui n'aime pas la double déclaration avec windows.h, je faut faire attention à l'ordre, mais je ne sais plus lequel est le bon