在C ++中声明extern方法

时间:2012-08-03 18:21:42

标签: c++ assembly linker

我已经有一些程序打算用作用Assembly编写的C ++方法(具有正确的调用约定和名称修改)。但是,当我尝试使用它们时

class Foo {
    extern void foo();
}

我得到“类成员的无效存储类”。如何正确地外部定义C ++方法?

一种解决方法是生成定义方法的thunk,该方法只调用程序集版本,使用内联程序集来支持thiscall约定。事实上,我已经有了生成这些代码的代码。但是,我真的想让这个更直接的方法工作。

1 个答案:

答案 0 :(得分:2)

离开外面。默认情况下,功能在外部可见。