递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 4943|回复: 4
打印 上一主题 下一主题

[视窗] 为什么火山PC的函数调用协议还是__stdcall的?

[复制链接]

9

主题

30

帖子

358

积分

中级会员

Rank: 3Rank: 3

积分
358
跳转到指定楼层
楼主
发表于 2022-3-8 13:18:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近在尝试使用火山LUA,发现注册的函数调用之后程序就立即终止了,一直找不到是什么问题,
找到了易语言大佬kyozy的lua中文修改版,
才发现易语言的要将回调函数改为__stdcall协议才能用。
没想到火山的也要改为__stdcall协议才能用......


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


回复

使用道具 举报

14

主题

494

帖子

3063

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
3063
来自 5#
发表于 2022-3-9 15:27:37 | 只看该作者
Vanyogin 发表于 2022-3-9 09:55
小白一枚,不会改,看来只能用64位了。

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

评分

参与人数 1金钱 +15 收起 理由
Vanyogin + 15 感谢大佬!

查看全部评分

回复

使用道具 举报

7

主题

247

帖子

2025

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
2025
沙发
发表于 2022-3-8 14:04:06 | 只看该作者
火山的静态方法是stdcall,成员函数是cdecl

评分

参与人数 1金钱 +1 收起 理由
Vanyogin + 1 难受

查看全部评分

回复

使用道具 举报

14

主题

494

帖子

3063

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
3063
板凳
发表于 2022-3-8 17:19:02 | 只看该作者
火山默认的就是__stdcall,如果lua是原生代码,回调函数必须要设置为__cdecl,这是32位程序的一个历史遗留问题,64位就不需要设置了,因为64位就只有一种调用约定,采用的是变形的__fastcall
回复

使用道具 举报

9

主题

30

帖子

358

积分

中级会员

Rank: 3Rank: 3

积分
358
地板
 楼主| 发表于 2022-3-9 09:55:37 | 只看该作者
福寿 发表于 2022-3-8 17:19
火山默认的就是__stdcall,如果lua是原生代码,回调函数必须要设置为__cdecl,这是32位程序的一个历史遗留 ...

小白一枚,不会改,看来只能用64位了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2024-11-25 08:44 , Processed in 0.080680 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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