递归火山软件开发平台

标题: 取API函数地址 [打印本页]

作者: 小蜗牛    时间: 2023-8-28 19:00
标题: 取API函数地址
很简单..


调用静态方法 (取API函数地址 ("MessageBoxW"), 整数, 0, 0, 0, 0)


<火山程序 类型 = "通常" 版本 = 1 />

方法 取API函数地址 <公开 静态 类型 = 变整数 @嵌入式方法 = "">
参数 函数名称 <类型 = 文本型 @需求类型 = 立即数或常量>
{
    @ (INT_P)&@pvpt<函数名称>
}



作者: 793359277    时间: 2023-8-28 19:36
本帖最后由 793359277 于 2023-8-28 19:39 编辑

居然还有这种操作,不考虑多个库函数重名的问题,有什么弊端吗  

作者: 小蜗牛    时间: 2023-8-28 19:47
793359277 发表于 2023-8-28 19:36
居然还有这种操作,不考虑多个库函数重名的问题,有什么弊端吗

操作系统API...哪里有重名的...
作者: 793359277    时间: 2023-8-28 20:45
小蜗牛 发表于 2023-8-28 19:47
操作系统API...哪里有重名的...

不多,但是确实有的
作者: tmf19901124    时间: 2023-8-28 20:46
不稳定,加了某些编译参数时容易取到导入表包装的地址
作者: 小蜗牛    时间: 2023-8-28 21:43
793359277 发表于 2023-8-28 20:45
不多,但是确实有的

这样啊,涨知识了
作者: wyc00    时间: 2023-8-29 10:47
(, 下载次数: 47)
出错了

作者: Xelloss0618    时间: 2023-8-29 11:26
wyc00 发表于 2023-8-29 10:47
出错了

MessageBoxW 的参数全是0的话,就是这样,你试试这样

调用静态方法 (取API函数地址 ("MessageBoxW"), 整数, 本对象.取窗口句柄(), 取文本指针 ("我是消息内容"), 取文本指针 ("信息标题"), 0)
作者: 福寿    时间: 2023-8-29 18:56
wyc00 发表于 2023-8-29 10:47
出错了

第二和第三个参数是指针,0-255是系统专用,用户不能操作,直接调用API的话是经过处理的,通过指针调用没经过处理直接用肯定崩溃了
作者: wyc00    时间: 2023-8-30 22:40
ok
作者: fengshangren    时间: 2023-8-31 08:15
遇到没有加载的API模块,就不行了吧
作者: 小蜗牛    时间: 2023-8-31 08:33
fengshangren 发表于 2023-8-31 08:15
遇到没有加载的API模块,就不行了吧

嗯  编译的时候会报错..




欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/) Powered by Discuz! X3.4