gre*_*olf 5 c++ dll export name-decoration
这就是我现在宣布我的导出函数的方法:
extern "C" __declspec(dllexport)
Iexport_class* __stdcall GetExported_Class();
Run Code Online (Sandbox Code Playgroud)
当VS2008为此编译源代码时,生成的dll在其导出表下包含此内容:
_GetExported_Class@0
Run Code Online (Sandbox Code Playgroud)
为了与其他编译器兼容,我需要将上面的装饰看起来像这样:
GetExported_Class
Run Code Online (Sandbox Code Playgroud)
将调用约定更改为__cdecl将按照我想要的方式将其修饰,但约定是错误的,所以我不能使用它.我需要以__cdecl看起来的方式进行装饰,而是使用__stdcall.
无论如何不使用.def文件吗?是否有一个开关或一个选项,我可以传递给link.exe链接器,可以使它按我想要的方式装饰导出名称?
谢谢
不。所有 __stdcall 名称都以这种方式修饰。我很惊讶你有一些其他编译器不会期望 __stdcall 导出像这样装饰。使用 .def 覆盖链接器几乎是您所能做的一切 - 除非您想在生产后更改 PE 文件。
| 归档时间: |
|
| 查看次数: |
2131 次 |
| 最近记录: |