gpt4 book ai didi

c++ - 如何从 masm 引用外部 C++ 函数?

转载 作者:行者123 更新时间:2023-11-30 04:48:19 27 4
gpt4 key购买 nike

我目前正在学习 masm,但在调用外部函数时遇到了问题。

我在 c++ 中有一个名为 writei 的函数,它接收一个 uint64 并将其输出。

int writei(uint64_t a)
{
cout << a;
return 1;
}

我尝试“extrn”并从 .asm 文件中调用它,但编译器抛出“函数 mai 中引用的未解析外部符号 writei”。

这是 masm 代码(我使用的是 visual studio 2019)

extern writei : proto


.code
mai proc
push rbp
push rsp
mov ecx,3
call writei
pop rsp
pop rbp
ret
mai endp
end

最佳答案

除其他外,您需要 "extern C"在您的 C++ 方法声明中。

例如:

extern "C" {
int writei(uint64_t a);
}

int writei(uint64_t a)
{
cout << a;
return 1;
}

这里有一篇很好的文章,更详细地解释了这一点:

ISO C++ FAQ: How to mix C and C++

关于c++ - 如何从 masm 引用外部 C++ 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55906684/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com