考慮下面的需求,使用一個方法,一個是提供者,一個是使用者,兩者之間的接口是頭文件。頭文件中聲明瞭方法,在提供者那裏方法應該被聲明爲__declspec(dllexport),在使用者那裏,方法應該被聲明爲__declspec(dllimport)。兩者使用同一個頭文件,做爲接口,怎麼辦呢?ide
二、解決辦法:
使用條件編譯:定義一個變量,針對提供者和使用者,設置不一樣的值。post
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