我最近被分配到一个 c++ 项目,虽然我不是 c++ 开发人员。我获得了 Visual Studio 2010 Professional 作为 IDE。所以我试了一下。
我要编写一个包含两个静态库 (*.lib) 的 c++ 动态库 (*.dll)。静态库是我们几年前从另一家公司购买的第三方库。使用dumpbin /header ...
cmd 调用,我可以说这两个静态库都具有以下文件头值:
14C machine (x86)
我让这个任务为 Win32 解决方案平台工作。我将头文件和库添加到项目中。这些库是通过在.cpp 中编写两个#pragma comment(lib, ...)
语句来包含的,我需要这些函数。就像一个魅力。示例函数如下所示:
extern "C" void OURFreeStringBuf(Cm_StringBuf *sbuf)
{
FreeStringBuf(sbuf); // the call to the static library
}
这个动态库也将用于 x64 架构。所以我尝试将解决方案平台设置为x64。现在,对于静态库函数之一的每次调用,我都会收到以下错误(没有进行代码更改或其他配置更改):
error LNK2001: unresolved external symbol "..."
接着是一个总结错误:
error LNK1120: 29 unresolved external links
这些错误可能是尝试在 x64 dll 中链接 x86 lib 文件的结果吗?是否有机会使用提供的静态库完成此任务?
非常感谢您提前。