国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

VC中導出C++類的方法

2023-06-05 11:58:37
字體:
來源:轉載
供稿:網友

有時我們需要將在VC中定義的類導出來,以在其它地方使用,本文將使用一個例子來講解具體的方法。

首先,使用Wizard創建一個Win32 Dynamic-Link Library工程,然后定義一個簡單的C++類CInDLL.由于該類會被工程之外的文件所引用,所以需要對這個類進行引出。因為只有引出后所生成的DLL中才帶有供足夠的信息以在連接和運行時被正確引入到進程空間中。

有兩種方法可以引出類,使用__declspec(dllexport)定義和使用定義文件。

下面先講使用__declspec(dllexport)的方法:

將類定義改為:class __declspec(dllexport) CInDLL 就可以了。 這樣產生的工程在編譯時是正確的但是在使用時會產生錯誤,因為你包含的頭文件中也是使用__declspec(dllexport),而使用這個DLL的工程中并沒有引出這個類,而是需要引入這個類)在使用時需要將類定義改為class __declspec(dllimport) CInDLL就可以了。

使用定義文件可以有效的避免這個問題,這種方法是利用宏定義在不同的地方產生不同的編譯代碼:

在頭文件中加入如下的代碼:

#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(){}……

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 威海市| 青铜峡市| 永吉县| 平武县| 阿巴嘎旗| 镇雄县| 宁波市| 临海市| 洛南县| 疏勒县| 略阳县| 光山县| 延川县| 宣化县| 莱西市| 华容县| 桂平市| 蓝田县| 湄潭县| 津南区| 于田县| 镇赉县| 昌吉市| 延安市| 建始县| 扎鲁特旗| 浦东新区| 汉阴县| 丹凤县| 乐亭县| 桂阳县| 鄄城县| 台北市| 崇明县| 阿城市| 丘北县| 洛宁县| 禄丰县| 伊春市| 宜丰县| 连州市|