|
188精币
|
stdcall_to_cdecl | 整数型 | | |
lpfunction | 整数型 | | | | param_nums | 整数型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | i | 整数型 | | | lp | 整数型 | | | asm | 字节集 | | |
asm = { 85, 139, 236 }asm = asm + { 184 } + 到字节集 (lpfunction ) 计次循环首 (param_nums, i ) asm = asm + { 255, 181 } + 到字节集 (到整数 (4 (param_nums (i - 1 )) + 4 )) 计次循环尾 ()asm = asm + { 255, 208 }asm = asm + { 93, 195 }lp = VirtualAlloc (0, 12 + 6 × param_nums, 位或 ( #MEM_COMMIT, #MEM_RESERVE ), #PAGE_EXECUTE_READWRITE )set_data (lp, asm, 12 + 6 × param_nums )返回 (lp ) 这代码在lpcdecl = stdcall_to_cdecl (&日志_回调, 2) 如果日志_回调函数是2个整数下没问题. 但是日志回调函数参数一是整数,参数二是文本型数据, 就导致接受不到文本数据,请帮修改一下这个函数, 可以单纯写死接受的回调参数一:整数型,参数二:文本型.
补充内容 (2025-9-14 12:03):
set_data函数就是 RtlMoveMemory
补充内容 (2025-9-14 12:15):
函数源码在6楼 |
最佳答案
查看完整内容
测试后, 没发现问题:
你应该检查一下, 是不是dll写错了, 或是编译成了64位的了, 易语言不支持调用64位dll
回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。 友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。 快捷通道:申请荣誉值 →
|