【发布时间】:2012-08-03 18:21:41
【问题描述】:
我已经有一些程序打算用作用汇编编写的 C++ 方法(具有正确的调用约定和名称修改)。但是,当我尝试使用它们时
class Foo {
extern void foo();
}
我得到“类成员的无效存储类”。如何正确地在外部定义 C++ 方法?
一种解决方法是生成一个 thunk,定义简单地调用程序集版本的方法,使用内联程序集来支持 thiscall 约定。事实上,我已经有了生成这些的代码。不过,我真的很想让这种更直接的方法发挥作用。
【问题讨论】:
-
您是否尝试不使用
extern? -
您可能可以使用
extern "C" void foo();,它将使用 C 的调用约定(无名称修饰/修饰)。您应该可以从程序集中调用它们。