我有一个导出函数的静态库
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编译了两个项目,类有一个标题。
请帮助。
答案 0 :(得分:1)
您是否已将.lib文件包含在链接器INPUT属性中? 如果您在同一个解决方案中同时拥有两个项目,则可以添加库作为主项目的参考:右键单击主项目和参考。
干杯,
答案 1 :(得分:1)
time_t
声明中的问题存在差异。库意味着它是64位,但应用程序等待32位值。
剩下的问题是“为什么没有关于MSVS名称修改的好文档”?我已经阅读了很多,但没有找到参数列表中的下划线。
答案 2 :(得分:0)
尝试重建整个项目。 如果这不起作用,请检查Visual Studio目录(标题,库)