C#导出dll函数

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

C#导出dll函数

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

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

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

实例代码如下:

  1. publicdelegateintMsgBox(inthwnd,stringmsg,stringcpp,intok);  
  2. [DllImport("Kernel32")]  
  3. publicstaticexternintGetProcAddress(inthandle,Stringfuncname);  
  4. [DllImport("Kernel32")]  
  5. publicstaticexternintLoadLibrary(Stringfuncname);  
  6. [DllImport("Kernel32")]  
  7. publicstaticexternintFreeLibrary(inthandle);  
  8. privatestaticDelegateGetAddress(intdllModule,stringfunctionname,Typet)  
  9. {  
  10. intaddr=GetProcAddress(dllModule,functionname);  
  11. if(addr==0)  
  12. returnnull;  
  13. else  
  14. returnMarshal.GetDelegateForFunctionPointer(newIntPtr(addr),t);  
  15. }  
  16. privatevoidbutton1_Click(objectsender,EventArgse)  
  17. {  
  18. inthuser32=0;  
  19. huser32=LoadLibrary("user32.dll");  
  20. MsgBoxmymsg=(MsgBox)GetAddress(huser32,"MessageBoxA",typeof(MsgBox));  
  21. mymsg(this.Handle.ToInt32(),txtmsg.Text,txttitle.Text,64);  
  22. FreeLibrary(huser32);  

以上介绍C#导出dll函数。

【编辑推荐】

  1. C#在应用程序间发送消息实现浅析
  2. 一些C#时间类型的入门知识
  3. C#接口和抽象类技术特点浅析
  4. 一个C#时间计算的实例
  5. C#继承知识详解
责任编辑:佚名 来源: chinaitlab
相关推荐

2009-08-07 17:22:36

C#调用dll导出函数

2009-08-07 17:12:07

C# DLL函数

2009-08-05 09:30:39

C#调用DLL函数

2009-08-05 09:40:02

C#调用DLL函数

2009-07-31 17:28:35

C#语言调用DLL

2009-08-18 16:31:19

Visual C#编写

2009-08-03 12:57:27

C#调用DLL

2009-08-05 09:09:14

C#调用VC DLL接

2009-08-10 13:05:06

C# DLLC# Delphi开发

2009-08-05 16:41:36

C#调用VC dll

2009-09-02 17:16:01

冒泡排序

2009-08-05 15:04:14

C# dll注入

2009-08-05 09:22:43

C#调用VC DLL

2009-08-31 10:14:49

C# CreateEm

2009-08-31 09:59:13

C# CreateEm

2009-08-05 16:49:42

C#中调用dll

2009-08-24 15:58:00

Visual C#生成

2011-04-08 09:52:44

C++C#DLL

2009-08-31 10:28:00

C# CreateEm

2009-07-31 14:26:38

JavaScript函C#函数
点赞
收藏

51CTO技术栈公众号