DLL的創(chuàng)建
1) 啟動Visual C++ 6.0;
2) 新建一個“Win32 Dynamic-Link Library”工程,工程名稱為“Count”;
3) 在“Dll kind”選擇界面中選擇“A simple dll project”;
4) 打開Count.cpp,添加如下代碼:
// 導出函數(shù),使用“ _stdcall ” 標準調用
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”進行編譯,得到Count.dll(在工程目錄下的Debug文件夾中)。
2. 用DllImport調用DLL中的count函數(shù)
1) 打開項目“Tzb”,向“Form1”窗體中添加一個按鈕。
2) 改變按鈕的屬性:Name為 “B2”,Text為 “用DllImport調用DLL中count函數(shù)”,并將按鈕B1調整到適當大小,移到適當位置。
3) 打開“Form1.cs”代碼視圖,使用關鍵字 static 和 extern 聲明方法“count”,并使其具有來自 Count.dll 的導出函數(shù)count的實現(xiàn),代碼如下:
[DllImport("Count.dll")]
static extern int count(int init);
4) 在“Form1.cs[設計]”視圖中雙擊按鈕B2,在“B2_Click”方法體內添加如下代碼:
MessageBox.Show(" 用 DllImport 調用 DLL 中的 count 函數(shù), \n 傳入的實參為 0 ,得到的結果是: "+count(0).ToString()," 挑戰(zhàn)杯 ");
MessageBox.Show(" 用 DllImport 調用 DLL 中的 count 函數(shù), \n 傳入的實參為 10 ,得到的結果是: "+count(10).ToString()+"\n 結果可不是想要的 11 哦?。。?"," 挑戰(zhàn)杯 ");
MessageBox.Show(" 所得結果表明: \n 用 DllImport 調用 DLL 中的非托管 \n 函數(shù)是全局的、靜態(tài)的函數(shù)?。?! "," 挑戰(zhàn)杯 ");
5) 把Count.dll復制到項目“Tzb”的bin\Debug文件夾中,按“F5”運行該程序,并點擊按鈕B2,便彈出如下三個提示框:
點擊加載更多評論>>