Boost::asio winsock и проблема совместимости с winsock 2

В моем проекте используется windows.h, в котором используется winsock.h, и мне нужно включить boost:assio, который использует winsock2. Поэтому я получаю много ошибок, в которых говорится, что Winsock.h уже включен. Я могу определить WIN32_LEAN_AND_MEAN. чтобы windows.h не использовал winsock. Проблема в том, что мне нужен windows.h, чтобы использовать его, и мне просто нужен Asio для асинхронных таймеров. Мне не нужен его winsock2.h . Я попытался найти, как отключить его использование winsock2, и обнаружил, что могу сделать это, определив BOOST_ASIO_NO_WIN32_LEAN_AND_MEAN перед включением boost:asio, но все равно получаю ту же ошибку.

#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 уже включен

17
задан Brian Tompsett - 汤莱恩 29 November 2015 в 12:41
поделиться