q472448760 发表于 3 天前

火山嵌入真难啊!!!

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

Xelloss0618 发表于 3 天前

注意函数的调用约定。
64位下,__stdcall 和 __cdelc 是一样的,32位下有严格区分,可能你这个函数并不是 CALLBACK(__stdcall )

sunye88888 发表于 3 天前

哎 一言难尽 ,买火山就是为了中文代码,不用去学其他语言,买了之后发现,隔三差五就得整个嵌入式
我要是会嵌入 还买什么火山,直接C++得了呗

乐易论坛 发表于 3 天前

32位和64位调用约定不一样啊....

b0y 发表于 3 天前

sunye88888 发表于 2025-9-10 10:32
哎 一言难尽 ,买火山就是为了中文代码,不用去学其他语言,买了之后发现,隔三差五就得整个嵌入式
我要是会嵌 ...

就是这个问题阿....对小白火山还是更应该丰富库嵌入式留给大佬用

q472448760 发表于 3 天前

Xelloss0618 发表于 2025-9-10 08:32
注意函数的调用约定。
64位下,__stdcall 和 __cdelc 是一样的,32位下有严格区分,可能你这个函数并不是 C ...

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

Xelloss0618 发表于 3 天前

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

可能你的函数指针类型和参数类型没写好
((void (CALLBACK*)(CVolString&)data_)) (CVolString(log_str.c_str()));

123456789 发表于 3 天前

sunye88888 发表于 2025-9-10 10:32
哎 一言难尽 ,买火山就是为了中文代码,不用去学其他语言,买了之后发现,隔三差五就得整个嵌入式
我要是会嵌 ...

诶,还真是。

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)

都是火山调为啥会有调用约定的问题。。。

Xelloss0618 发表于 3 天前

q472448760 发表于 2025-9-10 23:15
都试过了,乱码就算了。按理不应该崩溃。
调用约定的问题。报这样的错



你的火山函数是怎样的?
页: [1] 2
查看完整版本: 火山嵌入真难啊!!!