1、解決的問題:
考慮下面的需求,使用一個方法,一個是提供者,一個是使用者,二者之間的介面是標頭檔案。標頭檔案中宣告瞭方法,在提供者那裡方法應該被宣告為__declspec(dllexport),在使用者那裡,方法應該被宣告為__declspec(dllimport)。二者使用同一個標頭檔案,作為介面,怎麼辦呢?
2、解決辦法:
使用條件編譯:定義一個變數,針對提供者和使用者,設定不同的值。
1 #ifndef DLL_H_ 2 #define DLL_H_ 3 4 #ifdef DLLProvider 5 #define DLL_EXPORT_IMPORT __declspec(dllexport) 6 #else 7 #define DLL_EXPORT_IMPORT __declspec(dllimport) 8 #endif 9 10 DLL_EXPORT_IMPORT int add(int ,int); 11 12 #endif