当我们在visual studio 2008中使用__stdcall编译dll时,dll中的编译函数名是。GCC使用__stdcall编译dll
FunctionName
虽然当我们使用GCC使用WX-DEV-CPP GCC追加paramers函数具有数量编译相同的dll,所以使用的Dependency Walker的函数的名字看起来像。
FunctionName @ numberOfParameters或== FunctionName @ 8
如何告诉GCC编译器,以从DLL导出符号删除@nn?
感谢罗杰的答复,事实证明,问题是另一名开发人员将DEF文件放入该项目中。这个DEF文件告诉链接器在DLL中使用的命名约定。这就是为什么我们即使使用相同的调用约定也能得到不同的库名称的原因。 解决方案证明我们的开发人员在为项目创建自己的DLL时已经从头文件中删除了WINAPI。这导致windows visual studio恢复为默认调用约定__cdecl(/ Gd)。 – Chad 2009-12-08 02:56:41