dld類(lèi)的使用
/// <summary>
/// 創(chuàng)建一個(gè) dld 類(lèi)對(duì)象
/// </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" 是它的入口,可通過(guò) Depends 查看
4. “Form1.cs[設(shè)計(jì)]”視圖中雙擊按鈕B4,在“B4_Click”方法體內(nèi)添加如下代碼:
object[] Parameters = new object[]{(int)0}; // 實(shí)參為 0
Type[] ParameterTypes = new Type[]{typeof(int)}; // 實(shí)參類(lèi)型為 int
ModePass[] themode=new ModePass[]{ModePass.ByValue}; // 傳送方式為值傳
Type Type_Return = typeof(int); // 返回類(lèi)型為 int
// 彈出提示框,顯示調(diào)用 myfun.Invoke 方法的結(jié)果,即調(diào)用 count 函數(shù)
MessageBox.Show(" 這是您裝載該 Dll 后第 "+myfun.Invoke(Parameters,ParameterTypes,themode,Type_Return).ToString()
+" 次點(diǎn)擊此按鈕。 "," 挑戰(zhàn)杯 ");
5. “Form1.cs[設(shè)計(jì)]”視圖中雙擊按鈕B5,在“B5_Click”方法體內(nèi)添加如下代碼:
myfun.UnLoadDll();
6. 按“F5”運(yùn)行該程序,并先點(diǎn)擊按鈕B3以加載“Count.dll”,接著點(diǎn)擊按鈕B4三次以調(diào)用3次“count(0)”,先后彈出的提示框如下:
這三個(gè)提示框所得出的結(jié)果說(shuō)明了靜態(tài)變量S 經(jīng)初始化后,再傳入實(shí)參“0”也不會(huì)改變其值為“0”。
7. 點(diǎn)擊按鈕B5以卸載“Count.dll”,再點(diǎn)擊按鈕B3進(jìn)行裝載“Count.dll”,再點(diǎn)擊按鈕B4查看調(diào)用了“count(0)”的結(jié)果:
從彈出的提示框所顯示的結(jié)果可以看到又開(kāi)始重新計(jì)數(shù)了,也就是實(shí)現(xiàn)了DLL的動(dòng)態(tài)裝載與卸載了。
點(diǎn)擊加載更多評(píng)論>>