递归火山软件开发平台

标题: 为什么火山PC的函数调用协议还是__stdcall的? [打印本页]

作者: Vanyogin    时间: 2022-3-8 13:18
标题: 为什么火山PC的函数调用协议还是__stdcall的?
最近在尝试使用火山LUA,发现注册的函数调用之后程序就立即终止了,一直找不到是什么问题,
找到了易语言大佬kyozy的lua中文修改版,
才发现易语言的要将回调函数改为__stdcall协议才能用。
没想到火山的也要改为__stdcall协议才能用......


所以为什么火山PC的函数调用协议还是__stdcall的?



作者: tmf19901124    时间: 2022-3-8 14:04
火山的静态方法是stdcall,成员函数是cdecl

作者: 福寿    时间: 2022-3-8 17:19
火山默认的就是__stdcall,如果lua是原生代码,回调函数必须要设置为__cdecl,这是32位程序的一个历史遗留问题,64位就不需要设置了,因为64位就只有一种调用约定,采用的是变形的__fastcall
作者: Vanyogin    时间: 2022-3-9 09:55
福寿 发表于 2022-3-8 17:19
火山默认的就是__stdcall,如果lua是原生代码,回调函数必须要设置为__cdecl,这是32位程序的一个历史遗留 ...

小白一枚,不会改,看来只能用64位了。
作者: 福寿    时间: 2022-3-9 15:27
Vanyogin 发表于 2022-3-9 09:55
小白一枚,不会改,看来只能用64位了。

属性名那里设置为 @视窗.前缀文本 @__cdecl




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