我有一个导出函数的静态库
time_t SomeClass::getTime();
编译后它的名字被破坏为
?getTime@SomeClass@@QAE_JXZ
当我尝试使用它时,VS 返回错误
error LNK2001: unresolved external symbol "public: long __thiscall SomeClass::getTime(void)" (?getTime@SomeClass@@QAEJXZ)
我不知道哪里出了问题。为什么相同的功能被不同地破坏?我用相同的 Visual Studio 编译了这两个项目,类只有一个标题。
请帮忙。
最佳答案
问题在于 time_t
声明的不同。库意味着它是 64 位的,但应用程序等待 32 位值。
剩下的问题是“为什么没有关于 MSVS 名称修改的好文档”?我看了很多,但没有找到参数列表中的下划线是什么。
关于c++ - 错误的函数名称重整,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14354649/