理解 __declspec(dllexport)和__declspec(dllimport)

Andy Niu發表於2013-11-28

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

 

相關文章