Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/150.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C+中声明外部方法+; 我已经有一些程序要用作C++编写的汇编方法(具有适当的调用约定和名称修改)。然而,当我尝试使用它们时 class Foo { extern void foo(); } 我得到“类成员的无效存储类”。我如何正确地外部定义C++方法?< /P>_C++_Assembly_Linker - Fatal编程技术网

在C+中声明外部方法+; 我已经有一些程序要用作C++编写的汇编方法(具有适当的调用约定和名称修改)。然而,当我尝试使用它们时 class Foo { extern void foo(); } 我得到“类成员的无效存储类”。我如何正确地外部定义C++方法?< /P>

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

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

只需停止外部操作。函数在默认情况下是外部可见的。

您是否尝试关闭
外部
?您可能可以使用
外部“C”void foo()将使用C的调用约定(无名称损坏/装饰)。您应该能够从程序集中调用它们。不过,您可能希望将它们公开。或者您可以切换到struct。它是否是公共的不应该在链接上有区别。这只对编译器重要。是的,我知道。这不仅仅是一个一般性的观察。