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

dld類的使用

提問人:劉冬梅發(fā)布時間:2020-10-12
1. 打開項目“Tzb”,向“Form1”窗體中添加三個按鈕。Name 和Text屬性分別為 “B3”、“用LoadLibrary方法裝載Count.dll”,“B4”、“調(diào)用count方法”,“B5”、“卸載Count.dll”,并調(diào)整到適當?shù)拇笮〖拔恢谩?p>2. 在“Form1.cs[設計]”視圖中雙擊按鈕B3,在“B3_Click”方法體上面添加代碼,創(chuàng)建一個dld類實例:

/// <summary>

/// 創(chuàng)建一個 dld 類對象

/// </summary>

private dld myfun=new dld();

3. 在“B3_Click”方法體內(nèi)添加如下代碼:

myfun.LoadDll("Count.dll"); // 加載 "Count.dll"

myfun.LoadFun("_count@4"); // 調(diào)入函數(shù) count, "_count@4" 是它的入口,可通過 Depends 查看

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

object[] Parameters = new object[]{(int)0}; // 實參為 0

Type[] ParameterTypes = new Type[]{typeof(int)}; // 實參類型為 int

ModePass[] themode=new ModePass[]{ModePass.ByValue}; // 傳送方式為值傳

Type Type_Return = typeof(int); // 返回類型為 int

// 彈出提示框,顯示調(diào)用 myfun.Invoke 方法的結果,即調(diào)用 count 函數(shù)

MessageBox.Show(" 這是您裝載該 Dll 后第 "+myfun.Invoke(Parameters,ParameterTypes,themode,Type_Return).ToString()

+" 次點擊此按鈕。 "," 挑戰(zhàn)杯 ");

5. “Form1.cs[設計]”視圖中雙擊按鈕B5,在“B5_Click”方法體內(nèi)添加如下代碼:

myfun.UnLoadDll();

6. 按“F5”運行該程序,并先點擊按鈕B3以加載“Count.dll”,接著點擊按鈕B4三次以調(diào)用3次“count(0)”,先后彈出的提示框如下:

image.pngimage.png   image.png

這三個提示框所得出的結果說明了靜態(tài)變量S 經(jīng)初始化后,再傳入實參“0”也不會改變其值為“0”。

7. 點擊按鈕B5以卸載“Count.dll”,再點擊按鈕B3進行裝載“Count.dll”,再點擊按鈕B4查看調(diào)用了“count(0)”的結果:

image.png

從彈出的提示框所顯示的結果可以看到又開始重新計數(shù)了,也就是實現(xiàn)了DLL的動態(tài)裝載與卸載了。

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

相關視頻回答
回復(0)
返回頂部