“AF_IPX”: 宏重定义的解决方法

写了一个完成端口模型的小程序,编译运行跳出来一大堆重定义的错误,网上查一些资料是因为windows.h和WinSock2.h的包含关系。

将WinSock2.h写在windows.h前,问题就解决了。这两个头文件的包含关系不仅仅影响到直接包含两者的文件,还会影响到间接包含两者的情形。比如:a.h包含了windows.h,b.h包含了winsock2.h,如果在c.h中要引用a.h和b.h,那么a.h应该在b.h之前。这种顺序问题一般很难发现究竟是哪两个文件之间发生了顺序错误,所以极端解决方式就是在所有的#include前都加上#include<WinSock2.h>和#include<windows.h>。


另外,网上还看到另一种解决方式:定义宏WIN32_LEAN_AND_MEAN

属性》配置属性》c/c++》预处理器》预处理器定义:添加WIN32_LEAN_AND_MEAN

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章