begin process at 2010 02 10 06:27:44
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

Réseau & Internet

 > 

problème winsock2.h et ws2_32.lib


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

problème winsock2.h et ws2_32.lib

vendredi 31 octobre 2008 à 09:09:43 | problème winsock2.h et ws2_32.lib

Lefoudeboard

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).

Quand j'ajoute #pragma comments(lib,"ws_32.lib") j'obtiens l'erreur suivante:
warning C4068: unknown pragma

Que faire?

merci d'avance..

vendredi 31 octobre 2008 à 09:34:57 | Re : problème winsock2.h et ws2_32.lib

fregolo52

Membre Club
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 ?
vendredi 31 octobre 2008 à 09:43:43 | Re : problème winsock2.h et ws2_32.lib

Lefoudeboard

C'est sur une console.

Mais c'est quoi exactement la différence entre Win32 et console? et c'est quoi MFC?

vendredi 31 octobre 2008 à 10:03:22 | Re : problème winsock2.h et ws2_32.lib

fregolo52

Membre Club
En gros ca ne change pas les mêmes bibliothèsques par défaut.

Je viens de faire un test avec Console.
Par défaut, j'ai l'erreur. Mais quand j'ajoute ws2_32.lib dans les dépendances, ça link bien.

je comprends pas ton pb, tu n'as pas fait une erreur bête style faute de frappe ? (ca m'arrive )
vendredi 31 octobre 2008 à 10:19:58 | Re : problème winsock2.h et ws2_32.lib

Lefoudeboard

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?
vendredi 31 octobre 2008 à 10:32:37 | Re : problème winsock2.h et ws2_32.lib

Lefoudeboard

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() {
}

=> fct_user.cpp:
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include "fct_user.h

=> fct_user.h:
#include <winsock2.h>
vendredi 31 octobre 2008 à 10:34:30 | Re : problème winsock2.h et ws2_32.lib

Lefoudeboard

petite erreur de copie du code précédent, dans main.cpp:
#include <winsock2.h>
#include <stdio.h>
#include "fct_user.h"
void main() {
}
vendredi 31 octobre 2008 à 10:40:34 | Re : problème winsock2.h et ws2_32.lib

fregolo52

Membre Club
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.
vendredi 31 octobre 2008 à 10:42:15 | Re : problème winsock2.h et ws2_32.lib

fregolo52

Membre Club
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
vendredi 31 octobre 2008 à 10:51:20 | Re : problème winsock2.h et ws2_32.lib

Lefoudeboard

Avec VS2008 seul y'a bien C:\Program Files\Microsoft SDKs\Windows. Et après y'a les 2 dossier v5.0 et v6.0A.

J'ai essayé en mettant le chemin complet dans les options du linker et l'erreur a changé:

1>Linking...
1>LINK : fatal error LNK1181: cannot open input file 'C:\Program.obj'

Alors là je vois pas du tout ce qu'il veut? D'où peut venir une erreur pareil?

Je vais encore essayer de changer un peu les includes pour voir.

1 2

Cette discussion est classée dans : problème, in, lib, winsock2, ws2


Répondre à ce message

Sujets en rapport avec ce message

Problème de compilation WINSOCK2 [ par Tyrael369 ] Salut all !J'ai Dev c++ et je voulais utiliser winsock (v2) dans un programme et il me met qu'il y a erreur à cette ligne#include "winsock2.h"et en de winsock2.h et ws2_32.lib [ par shadow1779 ] Bonjour,voila j'programme des ptits trucs avec les sockets en C pour m'entrainer sous visual studio .Net 2003, et en fait maintenant quand je compile problème de lib et de dll... [ par Raoul12 ] je programme sous vc++6 et j'aimerais savoir s'il est possible de faire appel à une dll externe à un programme principal sans avoir à recompiler le pr Problème de compilation [ par norton ] Hello, J'ai crée une dll sous Visual C++ 6, la compilation c'est bien déroulée, j'ai donc ma DLL et mon fichier .lib.Mon problème c'est que si j'inclu dll,dll, quand on t'as pas ??? [ par RV2931 ] bonjour,j'ai fais un prog qui utilise WS2_32.dll, pour les socket sous windows, c un genre de chat...c'est bien WSA pour faire du réseau, mais je me s Problème de symbole externe. [ par matt22 ] Bonjour à tous.j'ai un petit problème de configuration de ms visual c++.je n'arrive pas à faire les bons lien pour compiler sans problème.j'utilise da Winsock2 [ par neophenix83 ] Bonjour,j'ai un projet sous Visual 2005 (VC8) avec divers .c et .h. dans un des .h j'inclu winsock2.h ....ce projet compile, et me crée la librairie q winsock2 Introuvable :s [ par Link214 ] Bonsoir a tousapres un long moment passer sans voir la moindre ligne de code je me remet petit a petit aux joie du C++ je ressort alors de vieux souve problème avec borland [ par tibob51 ] Bonjour,j'utilise borland 3 et j'ai un problème avec pour instaler la sdl,le compilo me retourne l'erreur suivante:[LinkerError] 'D:\PROGRAM FILES\BOR probleme de link avec libpng [ par spiky31 ] bonjourca fait plusieurs heures que je me triture le cerveau afin de trouver une solution mais ca ne vient décidemment pas, alors je tente de poster m


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,608 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales