麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > 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(){}……

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 少妇的肉体k8经典 | 国产精品一区二区在线 | 天天夜夜操操 | 色中色在线播放 | www.99av| 久草热久草视频 | 欧美a视频 | 嫩呦国产一区二区三区av | 国产成人自拍av | 久久精品免费网站 | 国产亚洲精品久久久久久久久久 | 亚洲第一成网站 | 免费播放av| 精品成人免费一区二区在线播放 | 精品久久久久久成人av | 91精品久久久久久久久久久 | 性视频久久 | 亚洲一区在线免费视频 | 国产精品一区在线看 | 国产精品视频久 | 鲁丝片一区二区三区免费入口 | 亚洲综合91 | 久久一区三区 | 欧美在线观看视频一区 | 中文国产在线视频 | 色网站免费观看 | 国产精品久久久久影院老司 | 国产激情视频在线 | 成人做爽爽爽爽免费国产软件 | 91精品国 | 久久久一区二区精品 | 一级一级一级一级毛片 | 日韩中字幕 | 国产在线欧美日韩 | 一区二区三区四区视频在线观看 | 午夜精品网站 | 噜噜噜躁狠狠躁狠狠精品视频 | 免费一级片网站 | 免费黄色成人 | 成人午夜在线观看视频 | 99久久婷婷国产综合精品青牛牛 |