游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1887|回复: 5

如何动态的引用Win32 API??

[复制链接]

187

主题

6490

帖子

6491

积分

论坛元老

团长

Rank: 8Rank: 8

积分
6491
发表于 2007-4-28 17:35:00 | 显示全部楼层 |阅读模式
事先不知道函数的名字,不知道包含该函数的DLL,运行时即时指定,可以办到吗?谢谢~~

187

主题

6490

帖子

6491

积分

论坛元老

团长

Rank: 8Rank: 8

积分
6491
 楼主| 发表于 2007-4-28 17:39:00 | 显示全部楼层

Re:如何动态的引用Win32 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
Private Declare Function FreeLibrary Lib "kernel32" (ByVal hLibModule As Long) As Long
Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal Hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Private Sub Command1_Click()
Dim DllHand As Long
Dim DllProc As Long
DllHand = LoadLibrary("你的DLL路径")
If DllHAND = 0 Then msgbox "没法加载DLL"
DllProc = GetProcAddress(DllHand, "你的DLL函数名")
if dllproc=0 then msgbox "没找到此函数"
CallWindowProc DllProc, DllHand, 0, 0, 0
执行你的DLL的函数
FreeLibrary DllHand '释放DLL
End sub

29

主题

354

帖子

359

积分

中级会员

Rank: 3Rank: 3

积分
359
QQ
发表于 2007-4-28 18:38:00 | 显示全部楼层

Re:如何动态的引用Win32 API??

这种用法占CPU时钟的,直接声明API更好

15

主题

2093

帖子

2093

积分

金牌会员

Rank: 6Rank: 6

积分
2093
发表于 2007-4-28 19:55:00 | 显示全部楼层

Re: Re:如何动态的引用Win32 API??

justgame: Re:如何动态的引用Win32 API??

这种用法占CPU时钟的,直接声明API更好


楼主说得很清楚了
“事先不知道函数的名字,不知道包含该函数的DLL”

29

主题

354

帖子

359

积分

中级会员

Rank: 3Rank: 3

积分
359
QQ
发表于 2007-4-28 20:08:00 | 显示全部楼层

Re: Re: Re:如何动态的引用Win32 API??

psic: Re: Re:如何动态的引用Win32 API??



楼主说得很清楚了
“事先不知道函数的名字,不知道包含该函数的DLL”

那连 LoadLibrary 也没法使了, LoadLibrary的参数中 必须输入DLL的名称和路径

187

主题

6490

帖子

6491

积分

论坛元老

团长

Rank: 8Rank: 8

积分
6491
 楼主| 发表于 2007-4-29 12:30:00 | 显示全部楼层

Re: Re: Re: Re:如何动态的引用Win32 API??

justgame: Re: Re: Re:如何动态的引用Win32 API??


那连 LoadLibrary 也没法使了, LoadLibrary的参数中 必须输入DLL的名称和路径

调用的时候指定~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-26 15:44

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表