【发布时间】:2012-04-02 18:26:02
【问题描述】:
我的项目使用 windows.h,其中使用了 winsock.h,我需要包含使用 winsock2 的 boost:assio。所以我收到很多错误,说 Winsock.h 已经包含在内。 我可以定义 WIN32_LEAN_AND_MEAN。这样windows.h就不会使用winsock。问题是,我需要 windows.h 才能使用它,而异步计时器只需要 Asio。我不需要它的 winsock2.h 。我尝试搜索如何禁用它的 winsock2 使用,我发现我可以通过在包含 boost:asio 之前定义 BOOST_ASIO_NO_WIN32_LEAN_AND_MEAN 来做到这一点,但我仍然得到同样的错误。
#include <windows.h>
#define BOOST_ASIO_NO_WIN32_LEAN_AND_MEAN
#include <boost/asio.hpp>
错误
1>c:\program files\boost\boost_1_47\boost\asio\detail\socket_types.hpp(22): 致命错误 C1189: #error : WinSock.h 已经包含
【问题讨论】:
标签: c++ boost-asio winsock c-preprocessor winsock2