DLL的創(chuàng)建
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,便彈出如下三個提示框:
點(diǎn)擊加載更多評論>>