boost asio 和 WinSock.h 已经包含在内

hal*_*ber 1 c++ boost wxwidgets boost-asio

像许多使用 Boost ASIO 库的人一样,我收到了“WinSock.h 已经包含在内”的错误消息。在其他帖子中,通过将 #include 行移到 #include 上方来回答问题

就我而言,我正在处理一个使用 Wx Widgets 的项目,并且似乎与 MFC 没有任何连接,也没有与 Win32 的直接连接。我找不到任何对 windows.h 的调用,也找不到任何相关的调用。我也试过使用 WIN32_LEAN_AND_MEAN 和 BOOST_ASIO_NO_WIN32_LEAN_AND_MEAN 声明。

我想知道是否有人在编写 Wx Widgets 项目时遇到了与 Boost ASIO 类似的问题?如果是这样,您是否能够解决 Winsock 错误?

hal*_*ber 6

我有一个解决方案。解决此问题的步骤是在项目设置的一侧定义 WIN32_LEAN_AND_MEAN。

转到 Project->Properties,选择 C/C++->Preprocessor

在预处理器定义下,添加 WIN32_LEAN_AND_MEAN。

我之前犯的错误是在代码文件中添加了 #define WIN32_LEAN_AND_MEAN。这没有任何帮助。请注意,我的 #include 仍然设置在 WxWidget 包含的上方。