已经包含了boost asio和WinSock.h
boost asio and WinSock.h has already been included
像许多使用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错误?
我有一个解决办法。解决这个问题的步骤是在项目的设置中定义WIN32_LEAN_AND_MEAN。
进入项目->属性,选择C/c++ ->预处理器
在预处理器定义下,添加WIN32_LEAN_AND_MEAN。
我之前犯的错误是在代码文件中添加了一个#define WIN32_LEAN_AND_MEAN。这没有任何帮助。注意,我的#include仍然设置在WxWidget include的上方。
设置wxUSE_IPV6
为1,或者,在include/wx/msw/setup.h
文件中设置wxUSE_SOCKETS
为0应该可以解决这个问题——如果你做前者,可以包括WinSock2头,如果你做后者,也可以不包括WinSock头。
不要忘记重建您的wxWidgets库,如果你做任何改变!
相关文章:
- 理解boost::asio-async_read在无需读取内容时的行为
- 提升 ASIO 无法识别计时器对象
- C++Boost Asio Pool线程,带有lambda函数和传递引用变量
- boost::asio::steady_timer()与sleep()我应该使用哪一个
- boost::asio如何生成多个协同程序,然后加入它们
- 缓慢提升ASIO
- 从 Boost ASIO 获取 epoll 描述符 io_service对象
- 如何在 Boost.Asio 中使用 Zero-copy sendmsg/receive
- C++ Boost::asio串行通信与Arduino无法写入
- 如何使用 Boost Asio 在 Android 上获取我的本地 udp IP 地址?
- 提升 Asio TCP 服务器 处理多个客户端
- boost::asio UDP 广播客户端仅接收"fast"数据包
- 提升 ASIO - io_service 不要等待连接到线程
- (Winsock) UDP 接收工作正常,但同一套接字的发送失败
- 执行时使用 boost::asio::d eadline_timer 时出错
- WinSock Non-Blocking I/O
- Boost.Asio/OpenSSL HTTPS GET certificate trouble
- C++ boost::asio::ip::tcp::acceptor 有时不接受连接器?
- Boost::asio-winsock和winsock 2的兼容性问题
- 已经包含了boost asio和WinSock.h