使用 __declspec(dllimport) 匯入至應用程式
據說會使用 DLL 所定義的公用符號的程式匯入它們。 當您為使用 DLL 建置的應用程式建立頭檔案時,請在 __declspec(dllimport)
公用符號的宣告上使用 。 關鍵詞 __declspec(dllimport)
適用於您使用 .def 檔案或 __declspec(dllexport)
關鍵詞導出。
若要讓您的程式代碼更容易閱讀,請為 定義 巨集 __declspec(dllimport)
,然後使用 巨集來宣告每個匯入的符號:
#define DllImport __declspec( dllimport )
DllImport int j;
DllImport void func();
在 __declspec(dllimport)
函式宣告上使用 是選擇性的,但如果您使用此關鍵詞,編譯程式會產生更有效率的程序代碼。 不過,您必須使用 __declspec(dllimport)
匯入可執行檔來存取 DLL 的公用數據符號和物件。 請注意,DLL 的使用者仍然需要連結至匯入連結庫。
您可以針對 DLL 和用戶端應用程式使用相同的標頭檔。 若要這樣做,請使用特殊的預處理器符號,指出您要建置 DLL 或建置用戶端應用程式。 例如:
#ifdef _EXPORTING
#define CLASS_DECLSPEC __declspec(dllexport)
#else
#define CLASS_DECLSPEC __declspec(dllimport)
#endif
class CLASS_DECLSPEC CExampleA : public CObject
{ ... class definition ... };