“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

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