www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 芯聞號(hào) > 充電吧
[導(dǎo)讀]? 動(dòng)態(tài)鏈接庫(kù):DLL(Dynamic Linkable Library) ? ? kernel32.dll處理內(nèi)存管理和進(jìn)程調(diào)度 user32.dll控制用戶界面 gdi32.dll圖形處理 ? w

?

動(dòng)態(tài)鏈接庫(kù):DLL(Dynamic Linkable Library)

?

?

kernel32.dll處理內(nèi)存管理和進(jìn)程調(diào)度

user32.dll控制用戶界面

gdi32.dll圖形處理

?

win32 dll

mfc dll

#include

#include

using namespace std;

typedef int(*LoadFunc)(int,int);

?

int main(void)

{

?

?????? HINSTANCE hInstance;

?????? LoadFunc add;

//加載dll

?

?????? hInstance=LoadLibrary(L"C:\Documents and Settings\liutao6\桌面\dlld.dll");

?????? if (hInstance!=NULL)

?????? {????

?????? add=(LoadFunc)GetProcAddress(hInstance,"Add");//獲取函數(shù)地址

?????? if (add!=NULL)

?????? {

????????????? int result=add(5,2);

????????????? cout<

?????? }

?

?????? FreeLibrary(hInstance);//釋放dll模塊

?????? }

?

}

?

?

?

extern "C" int __declspec(dllexport) Add(int,int);? //導(dǎo)出函數(shù)

?

int Add(int a,int b)

{

?????? return a+b;

}

使用MFC編寫(xiě)的DLL,可以分成兩大類:

l 規(guī)則DLL——規(guī)則(regular)DLL中所包含的函數(shù),可以被所有Windows應(yīng)用程序使用;

n???????? 共享MFC——DLL中不包含MFC庫(kù)函數(shù),需要另外安裝MFC動(dòng)態(tài)鏈接庫(kù)后才能使用;

n???????? 靜態(tài)MFC——DLL中包含MFC庫(kù)函數(shù),可以脫離MFC動(dòng)態(tài)鏈接庫(kù)獨(dú)立使用。

l 擴(kuò)展DLL——擴(kuò)展(extension)DLL中所定義的類和函數(shù),只能被所MFC應(yīng)用程序使用。而且擴(kuò)展DLL中不能包含MFC庫(kù)函數(shù),也需要另外安裝MFC動(dòng)態(tài)鏈接庫(kù)后才能使用。

?

1 擴(kuò)展DLL

使用MFC編寫(xiě)的擴(kuò)展DLL,可以導(dǎo)出整個(gè)類(從而能使用類中的所有成員,包括數(shù)據(jù)成員和成員函數(shù)),也可以導(dǎo)出指定的若干(成員或全局)函數(shù)。

(1)新建MFC擴(kuò)展DLL

(2)添加導(dǎo)出類(MFC類).繼承自Cobject.編寫(xiě)代碼并運(yùn)行

AFX_EXT_CLASS intMod(intd1, int d2);//導(dǎo)出函數(shù)聲明

class? AFX_EXT_CLASS CCompute : public CObject//導(dǎo)出類聲明

?????? //#define AFX_EXT_CLASS?????? AFX_CLASS_EXPORT

?????? //#define AFX_CLASS_EXPORT __declspec(dllexport)

{

public:

??? int m_data1, m_data2;

??? CCompute();

??? CCompute(intd1,int d2);

??? virtual ~CCompute();

public:

??? int Add();

??? int Sub();

??? int Mul();

??? double Div();

?

};

(3)新建項(xiàng)目MFC應(yīng)用程序。選中項(xiàng)目名,選中菜單項(xiàng)“項(xiàng)目項(xiàng)目依賴項(xiàng)”,在彈出的“項(xiàng)目依賴項(xiàng)”對(duì)話框中,選中“依賴欄”中的

(4)新項(xiàng)目的頭文件包含頭文件#include "..ExtDllCompute.h"

(5)在項(xiàng)目的類中聲明對(duì)象CCompute *m_pComp;

void CExtClientDlg::OnBnClickedAdd()

{

?????? // TODO: 在此添加控件通知處理程序代碼

??????Comp(IDC_ADD);

}

?

void CExtClientDlg::Comp(UINT nID)//參數(shù)為按鈕標(biāo)識(shí)

{

?????? UpdateData(); //動(dòng)態(tài)獲取用戶輸入的數(shù)據(jù)并賦值給對(duì)應(yīng)的控件變量

?????? m_pComp = new CCompute(m_iData1, m_iData2); //創(chuàng)建計(jì)算對(duì)象

?????? int r;

?????? double dr;

?????? switch(nID) { //進(jìn)行四則和取模運(yùn)算

????????????? case IDC_ADD: r = m_pComp->Add(); break;

。。。

?????? }

?????? delete m_pComp;

?????? if (nID != IDC_DIV) SetDlgItemInt(IDC_RESULT, r); //顯示整數(shù)結(jié)果

?????? else { // 顯示除法所得的實(shí)數(shù)結(jié)果

????????????? wchar_t buf[20];

????????????? swprintf_s(buf, 20, L"%g", dr);

????????????? SetDlgItemText(IDC_RESULT, buf);

?????? }

}

2? 規(guī)則DLL

使用MFC編寫(xiě)的規(guī)則DLL,雖然只能導(dǎo)出函數(shù)而不能導(dǎo)出整個(gè)類,但是其導(dǎo)出的函數(shù)卻可以其他被非MFC應(yīng)用程序所調(diào)用。下面我們?nèi)酝ㄟ^(guò)上面的四則運(yùn)算的例子,看看如何用關(guān)鍵字__declspec(dllexport)和extern "C"來(lái)編寫(xiě)和使用導(dǎo)出若干(全局)C函數(shù)的規(guī)則MFC DLL。

使用共享MFC DLL的規(guī)則DLL

也可以選擇“帶靜態(tài)鏈接MFC的規(guī)則DLL”,差別是所生成的DLL中會(huì)包含MFC庫(kù),當(dāng)然所生成的庫(kù)文件也會(huì)大一些(但因此可不用另外安裝MFC動(dòng)態(tài)鏈接庫(kù))。例如,在此例中,選共享MFC所生成的RegDll.dll文件只有13KB大,而選擇靜態(tài)MFC的則有199KB。

規(guī)則DLL項(xiàng)目是使用共享MFC還是使用靜態(tài)MFC,也可以在生成DLL項(xiàng)目之后,通過(guò)項(xiàng)目屬性對(duì)話框的“配置屬性常規(guī)”頁(yè)中的“MFC的使用”欄中的下拉式列表選項(xiàng)來(lái)切換,這一點(diǎn)與普通MFC應(yīng)用程序項(xiàng)目的類似。

?

1.宏定義

#define DllImport extern "C" _declspec(dllimport)

2.Cpp文件中加入

DllExport int Add(intd1,int d2) {??? return d1 + d2;}

DllExport int Sub(intd1,int d2) {??? return d1 - d2;}

DllExport int Mul(intd1,int d2) {??? return d1 * d2;}

?

?

?

3.添加依賴項(xiàng)和頭文件方法同上。工程文件cpp中加入

#define DllImport extern "C" _declspec(dllimport)

?

DllImport int Add(intd1,int d2);

DllImport int Sub(intd1,int d2);

DllImport int Mul(intd1,int d2);

DllImport double Div(intd1,int d2);

DllImport intMod(intd1, int d2);

?

4.使用函數(shù)

Add(m_iData1,m_iData2)

?

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉