在C+中声明外部方法+; 我已经有一些程序要用作C++编写的汇编方法(具有适当的调用约定和名称修改)。然而,当我尝试使用它们时 class Foo { extern void foo(); } 我得到“类成员的无效存储类”。我如何正确地外部定义C++方法?< /P>
一种解决方法是生成一个thunk,定义只调用程序集版本的方法,使用内联程序集支持thiscall约定。事实上,我已经有了生成这些的代码。然而,我真的很想让这个更直接的方法发挥作用。只需停止外部操作。函数在默认情况下是外部可见的。您是否尝试关闭在C+中声明外部方法+; 我已经有一些程序要用作C++编写的汇编方法(具有适当的调用约定和名称修改)。然而,当我尝试使用它们时 class Foo { extern void foo(); } 我得到“类成员的无效存储类”。我如何正确地外部定义C++方法?< /P>,c++,assembly,linker,C++,Assembly,Linker,一种解决方法是生成一个thunk,定义只调用程序集版本的方法,使用内联程序集支持thiscall约定。事实上,我已经有了生成这些的代码。然而,我真的很想让这个更直接的方法发挥作用。只需停止外部操作。函数在默认情况下是外部可见的。您是否尝试关闭外部?您可能可以使用外部“C”void foo()将使用C的调用约定(无名称损坏/装饰)。您应该能够从程序集中调用它们。不过,您可能希望将它们公开。或者您可以切换到struct。它是否是公共的不应该在链接上有区别。这只对编译器重要。是的,我知道。这不仅仅是一
外部
?您可能可以使用外部“C”void foo()代码>将使用C的调用约定(无名称损坏/装饰)。您应该能够从程序集中调用它们。不过,您可能希望将它们公开。或者您可以切换到struct。它是否是公共的不应该在链接上有区别。这只对编译器重要。是的,我知道。这不仅仅是一个一般性的观察。