0

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

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

我应该在工作站上安装什么或者我应该在项目配置中使用什么技巧来避免这个问题?

先感谢您!

4

3 回答 3

5

自从几年前发生这种邪恶的恐怖事件以来,作为并排集会的重复受害者,我不得不定期处理这个问题。@Frederic 是正确的,使用安装程序安装可再发行组件是理想的,但您也可能遇到其他问题。

也就是说,如果您可以访问 Vista/Windows7 机器,则可以使用 sxstrace。这是追踪这些问题的不直观的工具。您可以使用使用该工具生成的信息来准确确定您的应用正在寻找什么。

  1. 在命令行上运行它

    sxstrace.exe -日志文件:sxstrace.st

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

  3. 现在单击 enter 停止跟踪
  4. 现在输入:

    sxstrace 解析 -logfile:sxstrace.st -outfile:sxstrace.txt

  5. 现在您可以查看输出文件并准确了解应用程序运行时发生的情况。

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

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

于 2010-10-19T22:12:56.617 回答
3

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

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

于 2010-10-19T21:41:10.757 回答
2

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

你从哪里得到的redist?

redist 有多种版本,MSVC 附带的版本最有可能是合适的版本。但是,发生了很多事情,例如 ATL 安全更新等,因此您需要查看清单中存在的版本号信息,然后找到要安装的正确版本(或更新版本)。

如果您希望在另一台机器上使用库的调试版本,还要注意您将需要调试重分发。

于 2010-10-19T22:06:24.777 回答