2

我有一个在 VS2008 中构建的 C++ 项目。该项目还链接到使用 VS2005 构建的库(DLL + Import lib),从而加载 VS2005 调试 CRT 库(一切都是调试构建)。

当试图运行这个内置于 VS2008 的可执行文件时,由于 VS2005 DLL 没有找到调试 CRT 库,即使我安装了带有 SP1 的 VS2005,我也会在加载时出错。我也检查了 Windows 更新,所以我不确定我还能做些什么。

我该如何诊断这个问题?我查看了 Windows 中的事件查看器,发现它找不到调试 VC80 CRT 库,但这就是我所知道的。我猜这里的某个地方存在版本不匹配,我只是不知道如何解决它,因为我对这个清单/并排的东西不太了解。

我正在构建的操作系统是 Windows XP 32 位。我安装了 VS2008 SP1 和 VS2005 SP1(所以所有调试清单/CRT dll 都应该可用)

4

1 回答 1

0

学习检查或创建或检查适当的程序集清单

完成后,这里有更多信息。

在 Windows XP 上,如果应用程序的本地文件夹中存在外部清单,则操作系统加载程序使用此清单而不是嵌入二进制文件中的清单。在 Windows Server 2003 和更高版本的 Windows 上,情况正好相反——外部清单被忽略,而嵌入的清单在存在时被使用。

于 2012-04-04T03:29:03.663 回答