跨平臺__declspec宏的使用【精】
固然有區別,__declspec(dllexport)用於導出符號,也就是定義該函數的dll;__declspec(dllimport)用於導入,也就是使用該函數。
由於這個頭文件既要被定義該函數的dll包含,也要被使用該函數的程序包含,當被前者包含時咱們但願使用__declspec(dllexport)定義函數,當被後者包含時咱們但願使用dllimport。因而咱們使用
#ifdef _EXPORTING
#define CLASS_DECLSPEC __declspec(dllexport)
#else
#define CLASS_DECLSPEC __declspec(dllimport)
#endif
這種技巧,在定義該函數的dll中,其編譯選項定義了_EXPORTING而使用該函數的程序則沒有定義。
歡迎關注本站公眾號,獲取更多信息