当我们编译dll使用__的内部visual studio2008年编制职能名称的内部dll。

函数

虽然当我们编译了同样的dll使用的海湾合作委员会使用az-dev-cpp海湾合作委员会追加数的paramers的功能,因此名称的功能使用依赖沃克看起来像。

函数@numberOfParameters或==函数@8

你怎么告诉海湾合作委员会编译器,以去除@nn从出口中的符号dll?

有帮助吗?

解决方案

__ stdcall通过在开头添加下划线来装饰函数名,并在末尾添加参数的字节数(以@分隔)。

所以,一个功能:

void __stdcall Foo(int a, int b);

......将成为_Foo @ 8。

如果在.DEF文件的EXPORTS部分列出函数名称(未修饰),则会导出未修饰的文件。

也许这就是区别?

其他提示

只是使用 -Wl,--kill-at 在海湾合作委员会命令行,这将通过 --kill-at 到接头。

参考文献:

您还可以将 -Wl, - add-stdcall-alias 用于GCC中的链接器选项。这将确保存在两个函数名称(修饰和未修饰),并且可以用作别名。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top