小蜗牛 发表于 2023-8-28 19:00:16

取API函数地址

很简单..


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


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

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


793359277 发表于 2023-8-28 19:36:23

本帖最后由 793359277 于 2023-8-28 19:39 编辑

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

小蜗牛 发表于 2023-8-28 19:47:01

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

操作系统API...哪里有重名的...

793359277 发表于 2023-8-28 20:45:29

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

不多,但是确实有的

tmf19901124 发表于 2023-8-28 20:46:23

不稳定,加了某些编译参数时容易取到导入表包装的地址

小蜗牛 发表于 2023-8-28 21:43:00

793359277 发表于 2023-8-28 20:45
不多,但是确实有的

这样啊,涨知识了

wyc00 发表于 2023-8-29 10:47:56


出错了

Xelloss0618 发表于 2023-8-29 11:26:13

wyc00 发表于 2023-8-29 10:47
出错了

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

调用静态方法 (取API函数地址 ("MessageBoxW"), 整数, 本对象.取窗口句柄(), 取文本指针 ("我是消息内容"), 取文本指针 ("信息标题"), 0)

福寿 发表于 2023-8-29 18:56:52

wyc00 发表于 2023-8-29 10:47
出错了

第二和第三个参数是指针,0-255是系统专用,用户不能操作,直接调用API的话是经过处理的,通过指针调用没经过处理直接用肯定崩溃了

wyc00 发表于 2023-8-30 22:40:27

ok
页: [1] 2
查看完整版本: 取API函数地址