教你怎樣在VC中匯出C 類

2021-12-29 23:22:00 字數 853 閱讀 3786

首先使用wizard建立乙個win32 dynamic-link library工程,然後定義乙個簡單的c++類cindll.由於該類會被工程之外的檔案所引用,所以需要對這個類進行引出。因為只有引出後所生成的dll中才帶有供足夠的資訊以在連線和執行時被正確引入到程序空間中。有兩種方法可以引出類,使用__declspec(dllexport)定義和使用定義檔案。

下面先講使用__declspec(dllexport)的方法:將類定義改為:class __declspec(dllexport) cindll 就可以了。 這樣產生的工程在編譯時是正確的但是在使用時會產生錯誤,因為你包含的標頭檔案中也是使用__declspec(dllexport),而使用這個dll的工程中並沒有引出這個類,而是需要引入這個類)在使用時需要將類定義改為class __declspec(dllimport) cindll就可以了。

使用定義檔案可以有效的避免這個問題,sxs好問提示,這種方法是利用巨集定義在不同的地方產生不同的編譯**:在標頭檔案中加入如下的**:#ifdef _classindll #define classindll_class_decl __declspec(dllexport)#else #define classindll_class_decl __declspec(dllimport)#endif#endif // classindll_h//將class __declspec(dllexport) cindll改為class classindll_class_decl cindll在實現這個類的cpp檔案的頂部加入#define _classindll語句。

#define _classindllcindll::cindll(){}……

這樣一來在使用這個類時就可以不做任何改動了。

C 從Dll中匯出類

從dll中匯出c 類的內容可以參照下面的文章,該文章基本內容寫得比較詳細,分析了使用dll匯出c 類的利弊,同時提出了較好使用dll中物件的模式,即建立對於dll端和客戶端都可見的純虛類,在dll中建立繼承於該純虛類的類,實現純虛類中的純虛函式,供dll外部的客戶端使用。針對需要單獨釋放物件資源的情...

用DEF檔案從DLL中匯出C 類

用def 檔案從dll 中匯出c 類 用def從dll匯出乙個函式,或用 declspec dllexport 指令從dll中匯出一類,想必大家已經很熟悉了,也經常使用著。這裡向大家介紹一種 用def檔案從dll匯出乙個類的方法。具體原理或為什麼就不廢話了,學會匯出後,再慢慢回味吧。這裡主要敘述操作...

用DEF檔案從DLL中匯出C程式設計 類

用def從dll匯出乙個引數,或用 declspec dllexport 指令從dll中匯出一類,想必大家已經很熟悉了,也經常使用著。這 裡向大家介紹一種用def文件從dll匯出乙個類的method。具體原理或為什麼就不廢話了,學會匯出後,再慢慢回味吧。這裡主要敘述操作步驟。1.開啟vc6.0,新建...