递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库

火山嵌入真难啊!!!

查看数: 734 | 评论数: 13 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2025-9-10 07:53

正文摘要:

同样的代码,64位正常运行,32位 方法接收到后是乱码然后就崩溃

回复

Xelloss0618 发表于 前天 09:23
q472448760 发表于 2025-9-11 00:09
方法 测试回调方法2
参数 参数1
{

测试了一下,没有问题

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

变量 data_ <类型 = 变整数 @输出名 = "data_">
data_ = 取静态方法地址 (测试回调方法2)
@ std::string log_str{u8"你好啊"};
@ ((void (CALLBACK*)(CVolString&))data_) (CVolString(log_str.c_str()));
q472448760 发表于 前天 00:13
weilai 发表于 2025-9-10 23:56
老吴早就说过了,小白无需了解嵌入,老实用火山写代码就行

没办法的了 说不听
q472448760 发表于 前天 00:09
Xelloss0618 发表于 2025-9-10 23:27
你的火山函数是怎样的?

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

方法 测试回调方法2 <静态>
参数 参数1 <类型 = 文本型>
{
    调试输出 (取源方法名 (), 返回结果)

}

===========
就这样,用取静态方法地址 然后嵌入调这个方法,32位是有反应的,但是输出乱码之后就崩
weilai 发表于 3 天前
q472448760 发表于 2025-9-10 23:15
都试过了,乱码就算了。按理不应该崩溃。
调用约定的问题。报这样的错


老吴早就说过了,小白无需了解嵌入,老实用火山写代码就行
Xelloss0618 发表于 3 天前
q472448760 发表于 2025-9-10 23:15
都试过了,乱码就算了。按理不应该崩溃。
调用约定的问题。报这样的错

你的火山函数是怎样的?
q472448760 发表于 3 天前
Xelloss0618 发表于 2025-9-10 16:57
可能你的函数指针类型和参数类型没写好
((void (CALLBACK*)(CVolString&)data_)) (CVolString(log_str.c_ ...

都试过了,乱码就算了。按理不应该崩溃。
调用约定的问题。报这样的错

Run-Time Check Failure #0 -The value of ESP was not properly savedacross a function call. This is usually a result of calling a functiondeclared with one calling convention with a function pointer declaredwith a different calling convention.
(Press Retry to debug the application)

都是火山调为啥会有调用约定的问题。。。
123456789 发表于 3 天前
sunye88888 发表于 2025-9-10 10:32
哎 一言难尽 ,买火山就是为了中文代码,不用去学其他语言,买了之后发现,隔三差五就得整个嵌入式
我要是会嵌 ...

诶,还真是。
Xelloss0618 发表于 3 天前
q472448760 发表于 2025-9-10 15:57
我这是 mfc下的火山静态方法,同一个代码自己调自己, 用传指针解决了,就是不知道为啥32位用嵌如调就不 ...

可能你的函数指针类型和参数类型没写好
((void (CALLBACK*)(CVolString&)data_)) (CVolString(log_str.c_str()));
q472448760 发表于 3 天前
Xelloss0618 发表于 2025-9-10 08:32
注意函数的调用约定。
64位下,__stdcall 和 __cdelc 是一样的,32位下有严格区分,可能你这个函数并不是 C ...

我这是 mfc下的火山静态方法,同一个代码自己调自己, 用传指针解决了,就是不知道为啥32位用嵌如调就不行

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

GMT+8, 2025-9-13 21:25 , Processed in 0.096003 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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