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(, New StringBuilder("haha"), New StringBuilder("title"), )
Console.WriteLine("ok")
Console.ReadLine()
End Sub
End Class

vb.net 动态调用api的更多相关文章

  1. [VB.NET][C#]调用API获取或设置键盘按键状态

    前言 通过 C# 或 VB.NET,你只需编写少量的代码即可实现一个按键精灵. 第一节 接口 调用系统 API 实现获取或设置指定的按键状态. 获取按键状态 调用 GetAsyncKeyState() ...

  2. delphi 动态调用API

    好处没有这个API 也可以启动程序只是调用会出错. function __IsNativeVhdBoot: Boolean; type TIsNativeVhdBoot = function( Nat ...

  3. [源码]Delphi源码免杀之函数动态调用 实现免杀的下载者

    [免杀]Delphi源码免杀之函数动态调用 实现免杀的下载者 2013-12-30 23:44:21         来源:K8拉登哥哥's Blog   自己编译这份代码看看 过N多杀软  没什么技 ...

  4. 【VB技巧】VB静态调用与动态调用dll详解

    本文“[VB技巧]VB静态调用与动态调用dll详解”,来自:Nuclear'Atk 网络安全研究中心,本文地址:http://lcx.cc/?i=489,转载请注明作者及出处! [[请注意]]:在以下 ...

  5. Delphi - Windows系统下,Delphi调用API函数和7z.dll动态库,自动把文件压缩成.tar.gz格式的文件

    项目背景 应欧美客户需求,需要将文件压缩成.tar.gz格式的文件,并上传给客户端SFTP服务器. 你懂的,7-Zip软件的显著特点是文件越大压缩比越高,在Linux系统上相当于我们Windows系统 ...

  6. C#程序实现动态调用DLL的研究(转)

    摘 要:在<csdn开发高手>2004年第03期中的<化功大法——将DLL嵌入EXE>一文,介绍了如何把一个动态链接库作为一个资源嵌入到可执行文件,在可执行文件运行时,自动从资 ...

  7. C#程序实现动态调用DLL的研究[转]

    摘   要: 在< csdn 开发高手> 2004 年第 03 期中的<化功大法——将 DLL 嵌入 EXE >一文,介绍了如何把一个动态链接库作为一个资源嵌入到可执行文件,在 ...

  8. C#程序实现动态调用DLL的研究

    摘 要:在<csdn开发高手>2004年第03期中的<化功大法——将DLL嵌入EXE>一文,介绍了如何把一个动态链接库作为一个资源嵌入到可执行文件,在可执行文件运行时,自动从资 ...

  9. C++调用DLL有两种方法——静态调用和动态调用

    C++调用DLL有两种方法——静态调用和动态调用 标签: dllc++winapinullc 2011-09-09 09:49 11609人阅读 评论(0) 收藏 举报  分类: cpp(30)  [ ...

随机推荐

  1. hdu 2083

    ps:N个数中,中位数是最小距离...第一次WA是因为排序之后最小和最大相加除2...应该是找他们的中位数,而不是中间数. 代码: #include "stdio.h" #incl ...

  2. GridView导出Excel

    public void OUTEXCEL() { DataSet ds = new GW_T_DemandDAL().GetWzH(GetPersonInfoData(UserInfo), Reque ...

  3. automationOperationsWithPython

    1.psutil 系统性能信息模块,可获取系统运行的进程和系统利用率(包括CPU.内存.磁盘.网络等)信息.它主要应用于系统监控,分析和限制系统资源及进程的管理.该模块需要单独安装. 示例代码 imp ...

  4. Reachability判断网络是否连接

    类似于一个网络状况的探针. [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(reachabili ...

  5. HTTP协议详解(经典)

    转自:http://blog.csdn.net/gueter/archive/2007/03/08/1524447.aspx Author :Jeffrey 引言 HTTP是一个属于应用层的面向对象的 ...

  6. PHP中的数组(一)

    一.数组的概述    1.数组的本质:管理和操作一组变量    2.数组是复合类型    3.数组中可以存储任意长度的数据,也可以存储任意类型的数据    4.数组就可以完成其它语言数据结构的功能(链 ...

  7. Could not launch "app_name"

    真机测试 不报错 编译通过后 Xcode总出这个错 process launch faild:NotFound-------解决办法 :重启设备

  8. nohup启动命令(转)

    简单而有用的nohup命令在UNIX/LINUX中,普通进程用&符号放到后台运行,如果启动该程序的控制台logout,则该进程随即终止. 要实现守护进程,一种方法是按守护进程的规则去编程(本站 ...

  9. WeCenter程序安装

    WeCenter程序安装时需要GD库和freetype的支持,以下是安装方法 GD库的安装:我们可以直接使用yum命令来安装,自动解决依赖关系及安装GD库相关的包. [root@localhost ~ ...

  10. CSS2伪类选择器要点

    有四个选择器,分别是 hover:鼠标悬停 link:链接不能使用时 visited:链接被点击后 active:链接被点击时,如果鼠标不放,就会一直触发active属性 link在w3c中记录为链接 ...