在C中动态调用nativedll的导出函节能
2020-10-29 合山装修公司
在 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")]
publ后期出口有望企稳回升。ic 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 send原文链接:er, EventArgs e)
{
int huser32 = 0;
huser32 = LoadLibrary("l");
MsgBox mymsg = (MsgBox)GetAddress(huser32, "MessageBoxA", typeof(MsgBox));
mymsg(Int32(), xt, xt , 64);
FreeLibrary(huser32);
}
查看本文来源
尿酸偏高的原因白锈石价格小儿科
-
-
艾弗森希望加入76人管理层威少大心脏最像搭配
艾弗森:希望加入76人管理层 威少大心脏最像我北京时间3月20日,据《csnphil...
- 软装搭配 2020-05-30
-
艾弗森希望加入76人管理层威少大心脏最像搭配
-
-
波溪丽亚湾浪漫之海自由之城搭配
波溪丽亚湾:浪漫之海 自由之城在阳光,沙滩,椰树,海浪编织的美妙画卷里...
- 软装搭配 2020-05-29
-
波溪丽亚湾浪漫之海自由之城搭配
-
-
佛罗伦萨vs拉齐奥分析佛罗伦萨前进势头遇搭配
佛罗伦萨vs拉齐奥分析 佛罗伦萨前进势头遇阻北京时间4月19日02:45分,意甲联...
- 软装搭配 2020-05-29
-
佛罗伦萨vs拉齐奥分析佛罗伦萨前进势头遇搭配
-
-
p强化木地板排名情况强化木地板价格p
强化木地板排名情况 强化木地板价格强化木地板因为有着高密度基材层,这...
- 软装搭配 2020-02-26
-
p强化木地板排名情况强化木地板价格p
-
-
p老房翻新装修注意事项旧房翻新后多久可以
老房翻新装修注意事项 旧房翻新后多久可以入住如今的房价是一个月变一个...
- 软装搭配 2020-02-21
-
p老房翻新装修注意事项旧房翻新后多久可以
-
-
p根据婚宴风格选择合适场地p
根据婚宴风格 选择合适场地根据婚宴风格 选择合适场地根据婚宴风格 选择合...
- 软装搭配 2020-02-20
-
p根据婚宴风格选择合适场地p