位置:首頁 > 軟件操作教程 > 編程開發(fā) > C# > 問題詳情

DLL的創(chuàng)建

提問人:劉冬梅發(fā)布時間:2020-10-12

1) 啟動Visual C++ 6.0;

2) 新建一個“Win32 Dynamic-Link Library”工程,工程名稱為“Count”;

3) 在“Dll kind”選擇界面中選擇“A simple dll project”;

4) 打開Count.cpp,添加如下代碼:

// 導(dǎo)出函數(shù),使用“ _stdcall ” 標(biāo)準(zhǔn)調(diào)用

extern "C" _declspec(dllexport)int _stdcall count(int init);

int _stdcall count(int init)

{//count 函數(shù),使用參數(shù) init 初始化靜態(tài)的整形變量 S ,并使 S 自加 1 后返回該值

static int S=init;

S++;

return S;

}

5) 按“F7”進(jìn)行編譯,得到Count.dll(在工程目錄下的Debug文件夾中)。

2. 用DllImport調(diào)用DLL中的count函數(shù)

1) 打開項(xiàng)目“Tzb”,向“Form1”窗體中添加一個按鈕。

2) 改變按鈕的屬性:Name為 “B2”,Text為 “用DllImport調(diào)用DLL中count函數(shù)”,并將按鈕B1調(diào)整到適當(dāng)大小,移到適當(dāng)位置。

3) 打開“Form1.cs”代碼視圖,使用關(guān)鍵字 static 和 extern 聲明方法“count”,并使其具有來自 Count.dll 的導(dǎo)出函數(shù)count的實(shí)現(xiàn),代碼如下:

[DllImport("Count.dll")]

static extern int count(int init);

4) 在“Form1.cs[設(shè)計(jì)]”視圖中雙擊按鈕B2,在“B2_Click”方法體內(nèi)添加如下代碼:

MessageBox.Show(" 用 DllImport 調(diào)用 DLL 中的 count 函數(shù), \n 傳入的實(shí)參為 0 ,得到的結(jié)果是: "+count(0).ToString()," 挑戰(zhàn)杯 ");

MessageBox.Show(" 用 DllImport 調(diào)用 DLL 中的 count 函數(shù), \n 傳入的實(shí)參為 10 ,得到的結(jié)果是: "+count(10).ToString()+"\n 結(jié)果可不是想要的 11 哦!?。?"," 挑戰(zhàn)杯 ");

MessageBox.Show(" 所得結(jié)果表明: \n 用 DllImport 調(diào)用 DLL 中的非托管 \n 函數(shù)是全局的、靜態(tài)的函數(shù)!?。?"," 挑戰(zhàn)杯 ");

5) 把Count.dll復(fù)制到項(xiàng)目“Tzb”的bin\Debug文件夾中,按“F5”運(yùn)行該程序,并點(diǎn)擊按鈕B2,便彈出如下三個提示框:

image.png image.png image.png

繼續(xù)查找其他問題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部