Toon posts:

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

Pagina: 1
Acties:

  • xehbit
  • Registratie: februari 2009
  • Laatst online: 30-08 10:44
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.

  • .oisyn
  • Registratie: september 2000
  • Laatst online: 22:44

.oisyn

Moderator Devschuur® / Cryptocurrencies

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.

You see, killbots have a preset kill limit. Knowing their weakness, I sent wave after wave of my own men at them until they reached their limit and shut down. Kif, show them the medal I won.


  • xehbit
  • Registratie: februari 2009
  • Laatst online: 30-08 10:44
.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]


  • Soultaker
  • Registratie: september 2000
  • Laatst online: 22-07 23:43
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]



Nintendo Switch (OLED model) Apple iPhone 13 LG G1 Google Pixel 6 Call of Duty: Vanguard Samsung Galaxy S21 5G Apple iPad Pro (2021) 11" Wi-Fi, 8GB ram Nintendo Switch Lite

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2021 Hosting door True

Tweakers maakt gebruik van cookies

Bij het bezoeken van het forum plaatst Tweakers alleen functionele en analytische cookies voor optimalisatie en analyse om de website-ervaring te verbeteren. Op het forum worden geen trackingcookies geplaatst. Voor het bekijken van video's en grafieken van derden vragen we je toestemming, we gebruiken daarvoor externe tooling die mogelijk cookies kunnen plaatsen.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Forum cookie-instellingen

Bekijk de onderstaande instellingen en maak je keuze. Meer informatie vind je in ons cookiebeleid.

Functionele en analytische cookies

Deze cookies helpen de website zijn functies uit te voeren en zijn verplicht. Meer details

janee

    Cookies van derden

    Deze cookies kunnen geplaatst worden door derde partijen via ingesloten content en om de gebruikerservaring van de website te verbeteren. Meer details

    janee