1

我有一个导出函数的静态库

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 编译了两个项目,类有一个头文件。

请帮忙。

4

3 回答 3

2

问题在于time_t声明的不同。库意味着它是 64 位的,但应用程序等待 32 位值。

剩下的问题是“为什么没有很好的 MSVS 名称修改文档”?我已经阅读了很多,但没有找到参数列表中的下划线。

于 2013-01-16T11:12:10.630 回答
1

您是否在链接器 INPUT 属性中包含了 .lib 文件?如果您在同一个解决方案中同时拥有两个项目,则可以将库添加为对主项目的引用:右键单击主项目,然后单击“引用”。

干杯,

于 2013-01-16T09:10:30.420 回答
0

尝试重建整个项目。如果这不起作用,请检查您的 Visual Studio 目录(头文件、库)

于 2013-01-16T09:12:56.103 回答