VS2008编译错误,带有<;winsock2.h>; 当尝试编译我的VS2008 C++项目时,获得了105的重新定义和语法错误。运行64位Windows 7。 我在谷歌上搜索过,答案似乎很一致,但对我来说似乎不起作用
已尝试将VS2008编译错误,带有<;winsock2.h>; 当尝试编译我的VS2008 C++项目时,获得了105的重新定义和语法错误。运行64位Windows 7。 我在谷歌上搜索过,答案似乎很一致,但对我来说似乎不起作用,c++,visual-studio-2008,visual-c++,sockets,C++,Visual Studio 2008,Visual C++,Sockets,已尝试将\include放在\include之前。还尝试了不包含(因为winsock2会在缺少时自动包含它) 使用#define WIN32_LEAN_和_MEAN和/或#define_WINSOCKAPI之前的版本进行了尝试 在linker->additional dependencies中,我引用了ws2_32.lib。 还尝试了#pragma注释(lib,“ws2_32.lib”) 我重建了整个解决方案以防万一 常见错误(似乎很多人都有此错误): …等等,等等 任何建议都将不胜感激。我有一
\include
放在\include
之前。还尝试了不包含
(因为winsock2会在缺少时自动包含它)
使用#define WIN32_LEAN_和_MEAN
和/或#define_WINSOCKAPI
之前的版本进行了尝试
在linker->additional dependencies中,我引用了ws2_32.lib。
还尝试了#pragma注释(lib,“ws2_32.lib”)
我重建了整个解决方案以防万一
常见错误(似乎很多人都有此错误):
…等等,等等
任何建议都将不胜感激。我有一个“WinsockWrapper.h”标题,可以帮助我确保一致性。。。其要点是,
#ifndef _WINDOWS_
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#undef WIN32_LEAN_AND_MEAN
#endif
#include <winsock2.h>
#pragma comment(lib, "ws2_32.lib")
\ifndef\u窗口_
#定义WIN32_精益_和_平均值
#包括
#未定义WIN32\u精益\u和\u平均值
#恩迪夫
#包括
#pragma注释(lib,“ws2_32.lib”)
在任何需要winsock2.h的文件中,在可能引入windows.h的任何其他文件之前,请先包含此文件
这意味着将它放在大多数需要winsock2.h的文件的顶部
如果您正在使用预编译头,请确保它也有这个头。这是一个众所周知的问题。不知何故,MS使winsock.h和winsock2.h不兼容。MSVC 6中存在此问题 这只是您包含的文件之一,其中还包括winsock.h,而稍后您将包括winsock2.h
解决此问题的方法之一是首先包括winsock2.h。甚至在windows.h之前(它将自动包括windows.h)结果是
#ifndef _WINDOWS_
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#undef WIN32_LEAN_AND_MEAN
#endif
#include <winsock2.h>
#pragma comment(lib, "ws2_32.lib")