7
votes

VS2008 Compiler une erreur avec

Obtenir des tas (105) d'erreurs de redéfinies et de syntaxe lorsque vous essayez de compiler mon projet VS2008 C ++ avec inclus. Courir Windows 7 64bit. J'ai googlé et fouillé et la réponse semble assez uniforme mais elle ne semble pas fonctionner pour moi.

essayé de mettre #include avant #include . Également essayé non compris (comme winsock2 inclut-le automatiquement s'il manque).

essayé avec #define win32_lean_and_mean #define _winsockapi _ avant.

dans la liaison -> Dépendances supplémentaires que j'ai référencées ws2_32.lib. Également essayé #pragma commentaire (lib, "ws2_32.lib") .

i Reconstruit toute la solution juste au cas où.

Erreur habituelle (partagée par beaucoup il semble): xxx

... etc, etc.

toute suggestion serait appréciée.


0 commentaires

3 Réponses :


13
votes

J'ai un "winsockwrapper.h" en-tête qui m'aide à assurer la cohérence ... le gist de celui-ci est; xxx

inclure cela avant tout ce qui pourrait tirer dessus de Windows.h Tout fichier qui a besoin winsock2.h

ceci, IMHO signifie la mettre en haut de la plupart des fichiers qui ont besoin de winsock2.h ...

Assurez-vous que votre en-tête précompilé, si vous " en l'utilisant, a également ceci en premier.


0 commentaires

1
votes

Ceci est un problème bien connu. D'une manière ou d'une autre MS fait winsock.h et winsock2.h incompatible. Ce problème existe de MSVC 6.

Ce n'est que l'un des fichiers que vous incluses comprend également Winsock.h, tandis que vous incluez plus tard WINSOCK2.H

L'un des moyens de résoudre ce problème est inclus winsock2.h d'abord. Même avant Windows.h (il inclura automatiquement Windows.h)


0 commentaires

2
votes

s'avère a été appelé ailleurs dans le projet (séparez .h fichier) et avant le fichier ci-dessus. C'est ce que je reçois le codage tard. Merci pour l'aide, appréciée.

J'ai remplacé que appeler avec et ça marche bien maintenant.

Inclure commencer à me donner des problèmes de manière aléatoire après cela (tous les autres compilés). Je l'ai encapsulé avec #Ifdef _win32 mais il semble toujours aléatoire. Après avoir sauvé le projet après la dernière fois qu'il a compilé avec succès (tous les autres temps) et redémarré VS2008 semble avoir «fixé». L'erreur était une erreur de liaison interne (obtenu le MMS Lib référencé).


0 commentaires