vb.net 动态调用api
2014-07-24 13:33
267 查看
Imports System Imports System.Runtime.InteropServices Public Class DllInvoke Public Sub New(ByVal DLLPath As String) Me.hLib = DllInvoke.LoadLibrary(DLLPath) End Sub Protected Overrides Sub Finalize() Try DllInvoke.FreeLibrary(Me.hLib) Finally MyBase.Finalize() End Try End Sub <DllImport("kernel32.dll")> _ Private Shared Function FreeLibrary(ByVal [lib] As IntPtr) As Boolean End Function <DllImport("kernel32.dll")> _ Private Shared Function GetProcAddress(ByVal [lib] As IntPtr, ByVal funcName As String) As IntPtr End Function Public Function Invoke(ByVal APIName As String, ByVal t As Type) As [Delegate] Return Marshal.GetDelegateForFunctionPointer(DllInvoke.GetProcAddress(Me.hLib, APIName), t) End Function <DllImport("kernel32.dll")> _ Private Shared Function LoadLibrary(ByVal path As String) As IntPtr End Function Private hLib As IntPtr End Class
Imports System Imports System.Runtime.CompilerServices Imports System.Runtime.InteropServices Imports System.Text Public Class test Private Declare Function MessageBoxA Lib "user32" Alias "MessageBoxA" (ByVal hwnd As Integer, ByVal lpText As StringBuilder, ByVal lpCaption As StringBuilder, ByVal wType As Integer) As Long Private Delegate Function MessageBoxADelegate(ByVal hwnd As Integer, ByVal lpText As StringBuilder, ByVal lpCaption As StringBuilder, ByVal wType As Integer) As Long Public Shared Sub Main() Dim invoke As New DllInvoke("user32.dll") Dim mode As MessageBoxADelegate = DirectCast(invoke.Invoke("MessageBoxA", GetType(MessageBoxADelegate)), MessageBoxADelegate) mode.Invoke(0, New StringBuilder("haha"), New StringBuilder("title"), 0) Console.WriteLine("ok") Console.ReadLine() End Sub End Class
相关文章推荐
- [VB.NET].net平台调用API问题
- VB.NET动态加载C#或VB.NET生成的DLL文件调用动画教程[黑白智慧写](动态调用DLL).txt
- vb.net 调用api
- 关于vb.net里面api Unicode/ANSI调用一个问题解答
- vb.net静态动态调用c++dll的方法
- [VB.NET]调用API获取/设置键盘按键状态
- vb.net一种简单的方法动态调用标准dll中函数
- 实现用C#和VB.NET调用Ghostscript的API,把Postscript文件转为PDF文件。
- VB.NET及C#调用API
- VB.NET动态加载C#或VB.NET生成的DLL文件调用动画教程[黑白智慧写](动态调用DLL).txt
- 一个DataGrid分页控件,c#写的,再vb.net中调用,将会不断完善的
- 用vb.net读取INI配置文件的方法,使用API
- 客户端调用第三方remoting 服务程序的n中方式,VB.NET 晚期邦定还真方便
- Vb.net窗口调用问题
- VB.Net中动态创建Access数据库
- 答静静:动态更改水晶报表部分数据的背景颜色(VB.Net)
- 客户端调用第三方remoting 服务程序的n中方式,VB.NET 晚期邦定还真方便
- VB.NET调用ADO对数据库的操作
- 在VB.NET中调用动态链接库dll
- C#中直接调用VB.NET的函数,兼论半角与全角、简繁体中文互相转化