Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.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
visualc&x2B+;2015年不产生任何领先的“市场”_&引用; 我现在创建DLL很长时间了,但是我对我的新项目中出现的一个问题感到好奇,第一个代码是 VS C++ 2015_C++_Dllexport_Name Decoration - Fatal编程技术网

visualc&x2B+;2015年不产生任何领先的“市场”_&引用; 我现在创建DLL很长时间了,但是我对我的新项目中出现的一个问题感到好奇,第一个代码是 VS C++ 2015

visualc&x2B+;2015年不产生任何领先的“市场”_&引用; 我现在创建DLL很长时间了,但是我对我的新项目中出现的一个问题感到好奇,第一个代码是 VS C++ 2015,c++,dllexport,name-decoration,C++,Dllexport,Name Decoration,但是我的应用程序加载dll失败,因为找不到\u foo()。使用Dependency Walker检查dll时,会显示已导出foo(),但没有强制的前导\uuu 我找不到编译器/链接器选项对导出函数名的创建有影响。您试图将函数导出为,但实际上没有将它们标记为。这可能会导致堆栈损坏检查#pragma注释(链接器,“/EXPORT:…”,例如,此处:@madsciient OP最好确保使用正确的调用约定导出其函数,\uu stdcall前缀为\uu未能使用正确的约定可能并将导致堆栈损坏和未定义的行为

但是我的应用程序加载dll失败,因为
找不到\u foo()
。使用Dependency Walker检查dll时,会显示已导出
foo()
,但没有强制的前导
\uuu


我找不到编译器/链接器选项对导出函数名的创建有影响。

您试图将函数导出为,但实际上没有将它们标记为。这可能会导致堆栈损坏检查
#pragma注释(链接器,“/EXPORT:…”
,例如,此处:@madsciient OP最好确保使用正确的调用约定导出其函数,
\uu stdcall
前缀为
\uu
未能使用正确的约定可能并将导致堆栈损坏和未定义的行为。多亏了这一点,我的问题得到了妥善解决。我以前的编译器(Embarcadero似乎也没有使用“uu stdcall”)来实现它。现在我的语句看起来是这样的:extern“C”_declspec(dllexport)void u stdcall foo();在“依赖步行者”中,我现在可以看到“_foo@0,所以我缺少了“”,但为什么我认为“@0”是参数的字节长度(这里没有)?Embarcadero只是用相同的来源创建了“_foo”。
extern "C" void __declspec(dllexport) foo();