Dll,dll, quand on t'as pas ???

RV2931 Messages postés 185 Date d'inscription samedi 21 mai 2005 Statut Membre Dernière intervention 16 juillet 2016 - 18 mai 2006 à 17:49
RV2931 Messages postés 185 Date d'inscription samedi 21 mai 2005 Statut Membre Dernière intervention 16 juillet 2016 - 18 mai 2006 à 20:11
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 suis rendu compte qu'il marchait que sur ma machine, c moins bien pour discuter en reseau. :o)

En fait WS2_32 est fournie avec Visual Studio, donc ceux qu'il l'ont pas, ça marche pas, donc voilà ma question :

Comment faut-il faire pour que ça marche ???
on met toutes les .lib  et dll associées qu'on utilise dans le dossier courant et ça suffit lorsqu'on utilise un loadlibrary(lib,"ws2_32.lib); ????

sinon, dans les options du projet, y a des choses qu'il faut faire ????

merci

7 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
18 mai 2006 à 18:17
ws2_32.dll est un composant de Windows.

ciao...
BruNews, MVP VC++
0
RV2931 Messages postés 185 Date d'inscription samedi 21 mai 2005 Statut Membre Dernière intervention 16 juillet 2016
18 mai 2006 à 18:30
oui, je me suis peut-être un peu mélangé les pinceaux

en fait j'inclus le ws2_32.LIB, et celui là il est que pour la prog, je ne crois pas qu'il soit sur windows d'origine

enfin bon, plus précisément, comment faire pour charger directement la dll de windows, la réponse à cette question posé sous cette forme est surement quelque part dans un code,  mais peut-être une réponse clair ici m'aidera plus qu'une demi-heure à chercher le bon.

merci
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
18 mai 2006 à 18:53
un lib n'a pas à se trouver sur Windows, c'est le linker qui mettra direct les entrées nécessaires de DLL dans le prog et à l'exécution c'est le chargeur du systeme qui mappera les DLLs dans ton espace processus.
En résumé, si tu link avec le lib aucun besoin de charger explicitement la dll.
Sinon, LoadLibrary().

ciao...
BruNews, MVP VC++
0
RV2931 Messages postés 185 Date d'inscription samedi 21 mai 2005 Statut Membre Dernière intervention 16 juillet 2016
18 mai 2006 à 19:09
oui, j'ai vu cette fonction

il faut redéclarer chaque fonction de la librairie dans son programme, je fais ça :

FARPROC WSAAsyncSelect,WSAGetLastError;
HMODULE hWS2_32 = GetModuleHandle("WS2_32.DLL");
if (!hWS2_32){ MessageBox(NULL,"Erreur de chargement de WS2_32","",MB_OK}
WSAAsyncSelect = (FARPROC)GetProcAddress(hWS2_32,"WSAAsyncSelect");
WSAGetLastError = (FARPROC)GetProcAddress(hWS2_32,"WSAGetLastError");

mais ça marche pas, il met "unresolve external symbol [mailto:_WSAGetLastError@0 _WSAGetLastError@0] ......."
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
18 mai 2006 à 19:13
#include <Winsock2.h>
#include <windows.h>
#pragma comment(lib, "Ws2_32.lib")

et aucun besoin de tout cela, seulement appeler les fonction.

ciao...
BruNews, MVP VC++
0
RV2931 Messages postés 185 Date d'inscription samedi 21 mai 2005 Statut Membre Dernière intervention 16 juillet 2016
18 mai 2006 à 20:09
oui, mais justement, ceux qui n'ont pas de logiciel de developpement n'ont pas les .lib, c'est là mon problème, en fait c'est effectivement cette commande que j'utilise, mais mon programme ne marche pas, sur les autre pc, et je pense que c'est du justement à cette façon d'utiliser la dll ws2_32...
je vais continuer a chercher un bon exemple avec loadlibrary()
0
RV2931 Messages postés 185 Date d'inscription samedi 21 mai 2005 Statut Membre Dernière intervention 16 juillet 2016
18 mai 2006 à 20:11
merci tout de même
d'ailleurs merci de repondre à tous ces posts, c'est impressionnant :o)
0
Rejoignez-nous