我们有一个在发布模式下使用 MS Visual Studio 2010 构建的 DLL。我们将此 DLL 与 .lib 文件一起提供给不同的客户。DLL 中的函数通过以下方式导出:
extern "C" __declspec(dllexport) int analyze(int id);
我们的客户有两个使用此 DLL 的应用程序。这两个应用程序都使用以下方式导入 DLL 函数:
extern "C" __declspec(dllimport) int analyze(int id);
其中一个应用程序是使用 MS Visual Studio 2010 构建的。此应用程序可以在调试和发布模式下成功构建。
不幸的是,另一个应用程序必须使用 MS Visual Studio 2005 作为其构建环境。在这个应用程序中,可以成功构建发布版本,但是,当我们尝试在调试模式下构建时,我们会收到链接器错误:
LNK2019:函数“void __cdecl process(char const *,char const *)”(?process@@ABCERFG0@Z) 中引用了未解析的外部符号 __imp_analyze
有人可以帮助我了解我们在这里缺少什么吗?我们是否以不能跨编译器移植的方式导出函数?解决方案是什么?
问候,