a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

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

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 99视频网站 | 亚洲毛片网站 | 天堂av中文在线 | 四虎永久免费在线 | 99久精品| 黄色资源在线观看 | 麻豆精品国产传媒 | 91精品国产乱码久久久久久 | 久久国内 | 亚洲美女网址 | 欧美福利视频 | 欧美乱码精品一区二区三 | 成人午夜在线观看 | 国产黄色大片网站 | 国产精品视频一区二区三区 | 久久久久99999 | bxbx成人精品一区二区三区 | 国内精品久久精品 | 亚洲久久视频 | 久热热热 | 亚洲午夜精品一区二区三区 | 一区二区久久久 | 欧美lesbianxxxxhd视频社区 | 女同理伦片在线观看禁男之园 | 久久精品国产99 | 亚洲欧美中文日韩v在线观看 | 久久精品| 亚洲免费观看视频 | 国产精品久久久久久久久久久久久久 | 国产精品久久久av | 成人久久一区 | 久草网站 | 在线亚洲天堂 | 国产成人啪精品午夜在线观看 | 一本色道久久综合狠狠躁的推荐 | 午夜精品久久久久久久久久久久久 | 三级网站大全 | 欧美一级精品片在线看 | 亚洲国产日韩在线 | 男人天堂视频网 | 久久久久综合 |