程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 教你如何在VC中導出C++類

教你如何在VC中導出C++類

編輯:C++入門知識

首先使用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{ CInDLL();……}在實現這個類的CPP文件的頂部加入#define _CLASSINDLL語句。

#define _CLASSINDLLCInDLL::CInDLL(){}……

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved