先看看下面一段代码:
Private Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long
Private Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Long, ByVal lpProcName As String) As Long
Dim a, b As Long
Private Sub Command1_Click()
a = LoadLibrary("kernel32")
b = GetProcAddress(a, "Beep")
End Sub
上面调用 LoadLibrary 函数加载kernel32.DLL库。然后使用 GetProcAddress 函数获得Beep函数导出的 DLL 函数的地址。可是怎样根据返回值 a 和 b 进一步调用Beep函数呢?
例如我在VB中对Beep函数不做声明,而是利用 a 和 b 两个变量来调用Beep函数,使其等效于C=Beep(100,100)
OK?
最近搞的这个程序挺棘手的,需要用到大量的Api函数,太浪费资源了,我想要让它需要用到某一个函数时再把它加载,应该可以吧?
Private Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long
Private Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Long, ByVal lpProcName As String) As Long
Dim a, b As Long
Private Sub Command1_Click()
a = LoadLibrary("kernel32")
b = GetProcAddress(a, "Beep")
End Sub
上面调用 LoadLibrary 函数加载kernel32.DLL库。然后使用 GetProcAddress 函数获得Beep函数导出的 DLL 函数的地址。可是怎样根据返回值 a 和 b 进一步调用Beep函数呢?
例如我在VB中对Beep函数不做声明,而是利用 a 和 b 两个变量来调用Beep函数,使其等效于C=Beep(100,100)
OK?
最近搞的这个程序挺棘手的,需要用到大量的Api函数,太浪费资源了,我想要让它需要用到某一个函数时再把它加载,应该可以吧?
解决方案 »
- 我的cab包在ie下安装完后会出错。 再次运行就没有错误了。 请帮忙看看是不是我的inf写的有问题
- excel中数据导入SQLSERVER
- Picture控件属性
- 各位老大!救命啊!!谁能帮我看看这个是什么函数?好象是个弧线!谁能解开的?万分相赠!!!(
- 请问有三个SSTab控件 在其中一个上边放上textbox 在另外两个中也显示 怎样解决这个问题?
- 请教如何能学好vb.net!!!!!
- 请帮一下。
- 如果想生成一些类似柱状图,扇型图的分析图表,并且便于打印。
- 水晶报表在打包到安装程序中时,需要包含哪些文件
- 请问installshield有没有中文版,或者中文补丁?有的话哪里有下载?
- dll在vb中如何声明、调用
- vb 远程数据库
参考下面例子:
Call and Return Values From API functions by Name,without Declare!
http://www.freevbcode.com/ShowCode.Asp?ID=1863
http://www.freevbcode.com/code/APIByName.zip