与使用Boost ASIO库的许多人一样,我已经包含了#34; WinSock.h已被包含在内#34;错误。在其他帖子中,通过移动#include
上方的#include行来回答问题在我的情况下,我正在使用Wx Widgets的项目,似乎没有任何与MFC的连接,或者直接连接到Win32。我还没有找到任何对windows.h的调用,也没有任何相关的调用。我还尝试过使用WIN32_LEAN_AND_MEAN和BOOST_ASIO_NO_WIN32_LEAN_AND_MEAN声明。
我想知道是否有人编写Wx Widgets项目遇到与Boost ASIO类似的问题?如果是这样,你能解决Winsock错误吗?
答案 0 :(得分:3)
我有一个解决方案。修复此问题的步骤是在项目设置的一侧定义WIN32_LEAN_AND_MEAN。
转到项目 - >属性,选择C / C ++ - >预处理器
在预处理器定义下,添加WIN32_LEAN_AND_MEAN。
我之前犯的错误是将#define WIN32_LEAN_AND_MEAN添加到代码文件中。这没有任何帮助。注意,我的#include仍然设置在WxWidget包含的上方。
答案 1 :(得分:0)
将wxUSE_IPV6
设置为1,或者在wxUSE_SOCKETS
文件中将include/wx/msw/setup.h
设置为0可以解决问题 - 如果您执行前者或不包括WinSock2标头如果你选择后者,WinSock也不会。
如果您要更改,请不要忘记重建您的wxWidgets库!