当我的main.cpp文件中写了#include <windows.h>
,而工程的其他.cpp或.h文件中写了#include <boost/asio.hpp>
或#include <boost/asio/serial_port.hpp>
之类的boost/asio库的时候,会出现如下报错
error C1189: #error: WinSock.h has already been included
这个问题比较玄学,好几个方法可以解决该问题
在main.cpp中添加#include <boost/asio.hpp>
或#include <boost/asio/serial_port.hpp>
,注意:一定要在#include <windows.h>
之前添加,不能在#include <windows.h>
之后添加,如图所示
在main.cpp中添加#include <WinSock2.h>
,也是一定要在#include <windows.h>
之前添加,如图所示:
在main.cpp中将#include <windows.h>
移动到所有#include
之后,如图所示
核心就是要将先进行#include <boost/asio.hpp>
或#include <boost/asio/serial_port.hpp>
操作,然后再进行#include <windows.h>
操作即可。
因篇幅问题不能全部显示,请点此查看更多更全内容