[C++] ws2_32.dll in het project laden.

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • xehbit
  • Registratie: Februari 2009
  • Laatst online: 18-06 02:37
Hallo Tweakers,

Ik ben al enige tijd bezig met het programmeren van C++ alleen stuit ik op dit moment op een probleem dat ik de winsock2.h niet goed kan gebruiken. Ik moet daar ook de libary (ws2_32.lib) toevoegen aan het project en de DLL 'ws2_32.dll' ook.

Het lib bestand heb ik als volgt in een header gezet:
C++:
1
#pragma comment(lib, "ws2_32.lib");

Maar is er ook een mogelijkheid om bijv. zo een DLL er in te zetten net als de .LIB

Verschillende dingen geprobeerd zoals: #pragma comment(dll, "ws2_32.dll"); etc.. en op google gezocht maar werd er niet echt wijs uit.

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 16:30

.oisyn

Moderator Devschuur®

Demotivational Speaker

Je praat onzin, je hoeft de dll helemaal niet toe te voegen aan je project. Door te linken met de bijbehorende .lib geef je aan dat er dynamisch met de dll gelinkt moet worden.

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • xehbit
  • Registratie: Februari 2009
  • Laatst online: 18-06 02:37
.oisyn schreef op maandag 04 oktober 2010 @ 17:47:
Je praat onzin, je hoeft de dll helemaal niet toe te voegen aan je project. Door te linken met de bijbehorende .lib geef je aan dat er dynamisch met de dll gelinkt moet worden.
Sorry je hebt helemaal gelijk :$ Alsnog erg bedankt voor je antwoord. Ik kreeg een hoop fouten dus dacht nog dat het door die DLL kwam. bleek niet zo te zijn, want de winsock2.h word 2x geincluded. Dat komt omdat windows.h winsock2.h probeert te includen.

Dus even #include <windows.h> onder #include <winsock2.h> gezet en nu werkt het zonder problemen. Bedankt!

Oplossing: http://social.msdn.micros...75-4317-9904-02ef55b527d0

[ Voor 8% gewijzigd door xehbit op 04-10-2010 18:03 ]


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 03:27
Dat is niet het probleem. In winsock2.h staat gewoon een include guard, dus dat bestand meerdere keren includen kan gewoon (al krijg je maar één keer de definites ervan).

Het probleem is dat windows.h standaard (wellicht indirect) de oudere versie (winsock.h) includet, en die definities clashen dan vervolgens met winsock2.h. De nieuwe versie zet ook de guard macro voor de oude versie, waardoor het wel goed gaat als je winsock2.h éérst includet.

Persoonlijk vind ik het trouwens lelijk om libraries met #pragma's te includen. Daar heb je toch project properties voor? Aan de andere kan is je winsock-gebaseerde code (in ieder geval het winsock-specifieke deel) toch al niet portable dus maakt 't praktisch gezien weinig uit.

[ Voor 30% gewijzigd door Soultaker op 04-10-2010 18:21 ]