理解 __declspec(dllexport)和__declspec(dllimport)

一、解決的問題:

  考慮下面的需求,使用一個方法,一個是提供者,一個是使用者,兩者之間的接口是頭文件。頭文件中聲明瞭方法,在提供者那裏方法應該被聲明爲__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
複製代碼
相關文章
相關標籤/搜索