C#调用dll导出函数

开发 后端
本文介绍C#调用dll导出函数,在C++中我们能够通过 LoadLibrary,GetProcAddress 来动态C#调用dll导出函数。在C#中也能够用这样的方式吗?

在 C++ 中我们能够通过 LoadLibrary, GetProcAddress 来动态C#调用dll导出函数。在 C# 中也能够用这样的方式吗?

在 DotNet 2.0 里面这样是可以的, 这完全得益于 2.0新增的一个函数Marshal.GetDelegateForFunctionPointer 方法此方法在 .NET Framework 2.0 版中是新增的。将非托管函数指针转换为委托。

C#调用dll导出函数实例代码如下:

publicdelegateintMsgBox(inthwnd,stringmsg,stringcpp,intok);  
[DllImport("Kernel32")]  
publicstaticexternintGetProcAddress(inthandle,Stringfuncname);  
[DllImport("Kernel32")]  
publicstaticexternintLoadLibrary(Stringfuncname);  
[DllImport("Kernel32")]  
publicstaticexternintFreeLibrary(inthandle);  
privatestaticDelegateGetAddress(intdllModule,stringfunctionname,Typet)  
{  
intaddr=GetProcAddress(dllModule,functionname);  
if(addr==0)  
returnnull;  
else  
returnMarshal.GetDelegateForFunctionPointer(newIntPtr(addr),t);  
}  
privatevoidbutton1_Click(objectsender,EventArgse)  
{  
inthuser32=0;  
huser32=LoadLibrary("user32.dll");  
MsgBoxmymsg=(MsgBox)GetAddress(huser32,"MessageBoxA",typeof(MsgBox));  
mymsg(this.Handle.ToInt32(),txtmsg.Text,txttitle.Text,64);  
FreeLibrary(huser32);  

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.

C#调用dll导出函数

以上介绍C#调用dll导出函数

【编辑推荐】

  1. C#字符串进行分割
  2. 全面测试C#字符串
  3. C# out和ref传递数组
  4. 浅析C#定义整型数组
  5. C#数据库连接字符串
责任编辑:佚名 来源: MSDN
相关推荐

2009-07-31 14:54:48

dll函数C#导出

2009-08-05 09:40:02

C#调用DLL函数

2009-08-05 09:30:39

C#调用DLL函数

2009-07-31 17:28:35

C#语言调用DLL

2009-08-03 12:57:27

C#调用DLL

2009-08-07 17:12:07

C# DLL函数

2009-08-05 16:41:36

C#调用VC dll

2009-09-02 17:16:01

冒泡排序

2009-08-05 09:09:14

C#调用VC DLL接

2009-08-05 09:22:43

C#调用VC DLL

2009-08-05 16:49:42

C#中调用dll

2011-04-08 09:52:44

C++C#DLL

2009-08-25 10:59:00

C#调用函数显示值

2009-07-31 16:12:10

Windows APIC#

2009-08-03 13:34:57

C#调用Windows

2009-08-14 09:15:28

C#调用构造函数

2009-08-05 17:06:39

ASP调用C# DLL

2024-03-01 20:59:11

C#DLL开发

2011-03-31 09:13:00

Visual Stud

2009-08-31 09:21:38

JavaScript调
点赞
收藏

51CTO技术栈公众号