在中动态调用的导出函计划

粉碎设备2021年09月06日

在 C++ 中我们能够通过 LoadLibrary, GetProcAddress 来动态调用 dll 的导出函数.

在 C# 中也能够用这样的方式吗?

在 DotNet 2.0 里面这样是可以的, 这完全得益于 2.0新增的一个函数,tDelegateForFunctionPointer 方法。此方法在 .NET Framework 2.0 版中是新增的。

将非托管函数指针转换为委托。

实例代码如下:public delegate int MsgBox(int hwnd,string msg,string cpp,int ok);

[DllImport(\"Kernel32\")]

阿根廷老将斯基亚维也有望完成代表申花的首场比赛。 public static extern int GetProcAddress(int handle, String funcname);

[DllImport(\"Kernel32\")]

public static extern int LoadLibrary(String funcname);

[DllImport(\"Kernel32\")]

public static extern int FreeLibrary(int handle);

private static Delegate GetAddress(int dllModule, string functionname, Type t)

{

int addr = GetProcAddress(dllModule, functionname);

if (addr == 0)

return null;

else

return tDelegateForFunctionPointer(new IntPtr(addr), t);

}

private void button1_Click(object sender, EventArgs e)

{

int huser32 = 0;

huser32 = LoadLibrary(\"l\");

MsgBox mymsg = (MsgBox)GetAddress(huser32, \"MessageBoxA\", typeof(MsgBox));

mymsg(Int32(), xt, xt , 64);

FreeLibrary(huser32);

}

查看本文来源

西安人流检查要多少钱
南昌包皮过长治疗费用
哈尔滨看白癜风专业医院
相关阅读
《风起陇西》也库姆“关系户”?相貌平平戏份极少,却凭演技被夸

《原作者河东》播出以来,这部电视剧的每个电视剧情都让人印象引人注目。...

2024-12-16
山水重逢,愈见人为 ——KOLON SPORT 可隆举办ODUMAK露营活动

紧接4月末发布全新轻巧的产品、希望大家亲密人为之后,韩国高端的产品品...

2024-07-23
2022绍兴市公务员考试笔试时间重启公告

一、出题一段时间和课程内容 (一)课程内容任用公职人员出题一段时间和课程...

2024-03-05
BJ40城玩系列国潮皮肤发布,“天一”绽放花城魅力

当年,杭州骑行BJ40所发布的“山海”前传3款国潮脸部,让广大故常惊艳连连...

2024-01-23
智能扫地机器人哪个牌子好?5款真香机型盘点,值得收藏家

买农业机械商品,不不让牵牛了钱,就不让钱牵牛了,买回来的东西通用性不...

2023-12-05
像冰箱 微波炉等电器的污渍,不能用碱性太大的清洁剂,这种专用的多功能清洁剂,它是植物萃取精华,气味很

像厨房 微波炉等五金的塑胶袋,不会用碱性多大的清洁剂,这种备有的多功...

2023-11-24
友情链接