MSVCR80.DLL丢失了。我应该安装什么或者我将在c ++项目配置中使用什么技巧

时间:2010-10-19 21:29:20

标签: c++ legacy-code build-dependencies

我有一个遗留的msvs2005 c ++项目库(dll)。我在安装了msvs2008的WindowsXP工作站上打开了项目并编译好了代码。但是当我尝试将它与可执行模块一起使用时,我观察到“my-library.dll或其中一个依赖项未找到”。

Dependency Walker告诉我错过了MSVCP80.DLL,MSVCR80.DLL,MSVCR90D.DLL。 MSJAVA.DLL也错过了。我安装了2008 Visual C ++可再发行组件包,但问题仍然存在。所需的库未放入System32文件夹。

我应该在工作站上安装什么,或者我应该在项目配置中采取什么措施来避免这个问题?

提前谢谢!

3 个答案:

答案 0 :(得分:5)

作为并排集会的重复受害者,因为几年前发生了不圣洁的恐怖事件,我不得不定期处理这件事。 @Frederic是正确的,使用您的安装程序安装可再发行组件是理想的,但您可能还有其他问题。

也就是说,如果您可以访问Vista / Windows7计算机,则可以使用sxstrace。这是一个用于追踪这些问题的非直观工具。您可以使用使用该工具生成的信息来确切了解您的应用所需的内容。

  1. 在命令行上运行

    sxstrace.exe -logfile:sxstrace.st

  2. 现在启动应用程序并收到错误

  3. 现在点击Enter以停止追踪
  4. 现在输入:

    sxstrace parse -logfile:sxstrace.st -outfile:sxstrace.txt

  5. 现在您可以查看输出文件,看看应用程序运行时到底发生了什么。

  6. 来源:http://blogs.msdn.com/b/junfeng/archive/2006/04/14/576314.aspx

    另外,您可能需要查看msdn上的这篇文章,因为它有助于解决这些问题: http://msdn.microsoft.com/en-us/library/ms235342(VS.80).aspx

答案 1 :(得分:3)

您应该安装Visual C++ 2005 Redistributable PackageVisual C++ 2005 SP1 Redistributable Package,因为旧版代码是使用Visual Studio 2005(8.0)编译的。

如果使用VS 2005 SP1编译代码,请使用SP1可再发行组件。

答案 2 :(得分:2)

  

安装了2008 Visual C ++可再发行组件包,但问题仍然存在。

你从哪里得到了redist?

有多种版本的redist,MSVC附带的版本最有可能是合适的版本。然而,有一些事情发生,例如ATL安全更新等,所以你需要看的是清单中存在的版本号信息,然后找到要安装的正确版本(或更新版本)。 p>

如果您希望在另一台计算机上使用该库的调试版本,请注意您需要调试redist。