J'ai une application Linux qui envoie des données via le protocole UDP. Il utilise ces fichiers d'en-tête: Je veux faire une version Windows de mon application. Mais certains des fichiers d'en-tête ci-dessus ne fonctionnent pas dans Windows, en particulier ceux pour UDP. P> quels fichiers d'en-tête dois-je les substituer à Windows (Visual Studio 2010)? P> Mise à jour: P> OK, mon en-tête ressemble maintenant à ceci: p> i obtenir cette erreur lorsque vous essayez de compiler (et de nombreuses autres erreurs similaires): p>
4 Réponses :
commenter les fichiers inclus qui sont "manquants" ou mettez-les dans les éléments suivants:
#ifdef _WIN32 #define WIN32_LEAN_AND_MEAN 1 #include <winsock2.h> #include <windows.h> #else // unix includes here #endif
Au moment de la compilation, vous devez utiliser à link-time, inclure winsock2.h code> au lieu des en-têtes UNIX. p>
ws2_32.lib code> pour fournir un lien à la DLL système requise. P>
J'ai ajouté le ws2_32.lib à liker -> Entrée -> dépendances supplémentaires et ajouté la ligne #include
Sauf s'il est évident où le DUP provenait du texte d'erreur, vous pouvez compiler (l'un des) le (s) module (s) avec / p code> pour obtenir la sortie prétraitée et savoir où
fd_set < / code> est multiplié défini. Voir MSDN.MicRosoft.com/en-us/ Bibliothèque / 8z9Z0BX6 (v = vs.100) .aspx
@Richard - Assurez-vous que winsock2.h code> précède
windows.h code> si vous y compris les deux, par l'autre réponse. Assurez-vous que d'autres fichiers ne tirent pas dans
windows.h code> antérieurs. Arrivée dans
stdafx.h code> et les en-têtes OpenGL.
Vous n'avez pas besoin de la plupart de celles-ci inclut. Le seul fichier dont vous aurez besoin est Donc, pour tous les éléments de réseautage, incluez simplement
Ou vous pouvez préférer WS2TCPIP.H, il existe une différence subtile avec certains appels d'API.
vous voulez #incluez winsock2.h. Une particularité, vous devez #include avant em> y compris autre chose, y compris: