gpt4 book ai didi

c++ - VS2008 编译错误

转载 作者:可可西里 更新时间:2023-11-01 18:16:36 27 4
gpt4 key购买 nike

尝试使用 <winsock2.h> 编译我的 VS2008 c++ 项目时出现大量 (105) 重新定义和语法错误包括。运行 Windows 7 64 位。我用谷歌搜索了一遍,答案似乎很统一,但似乎对我不起作用。

尝试放置 #include <winsock2.h>之前#include <windows.h> .还尝试不包括 <windows.h> (因为 winsock2 会在丢失时自动包含它)。

尝试使用 #define WIN32_LEAN_AND_MEAN和/或 #define _WINSOCKAPI_之前。

在链接器 -> 附加依赖项中,我引用了 ws2_32.lib。也试过#pragma comment(lib, "ws2_32.lib") .

为了以防万一,我重建了整个解决方案。

常见错误(似乎很多人都有):

Error   5   error C2011: 'sockaddr' : 'struct' type redefinition    c:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h  206 RallyAction
Error 6 error C2143: syntax error : missing '}' before 'constant' c:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h 384 RallyAction
Error 7 error C2143: syntax error : missing ';' before 'constant' c:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h 384 RallyAction
Error 8 error C2059: syntax error : 'constant' c:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h 384 RallyAction

……等等,等等

如有任何建议,我们将不胜感激。

最佳答案

我有一个“WinsockWrapper.h” header ,它可以帮助我确保一致性……它的要点是;

#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")

在任何其他可能需要 winsock2.h 的文件中引入 windows.h 之前包含它

这个,恕我直言,意味着把它放在大多数需要 winsock2.h 的文件的顶部......

确保你的预编译头文件,如果你正在使用它,也首先有这个。

关于c++ - VS2008 编译错误 <winsock2.h>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4061562/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com