缺少DLL问题

时间:2011-01-02 13:44:30

标签: c++ visual-c++ mfc

我有一个在VS2005(sp1)下构建的C ++本机应用程序,在机器A上。(调试模式) 现在,我需要在“干净”的计算机上运行此应用程序,Clean意味着它没有安装VS. 当我将运行时文件夹从机器A复制到“干净”机器并尝试激活应用程序时,它需要重新安装应用程序。 显然缺少DLL导致这个问题导致机器A的应用程序工作得很好,除了解决哪些DLL丢失之外,是否有任何“干净”的解决方案?也许是一个智能工具或安装程序,指示运行时缺少哪些DLL?

谢谢, 丽然

5 个答案:

答案 0 :(得分:5)

为了完成这项工作,我会在干净的机器上下载并安装Microsoft Visual C++ 2005 Redistributable包。

然后我会创建应用程序的发布版本并将该版本复制到干净的机器上。

答案 1 :(得分:2)

您可以使用Dependeny Walker http://www.dependencywalker.com/来查找它引用的标准DLL,但我不确定是否有一种简单的方法可以找出应用程序引用的COM DLL。

或者(我不确定),您可以在计算机A(创建它)上运行您的应用程序,并使用http://www.sysinternals.com中的process viewer。它告诉您进程加载了哪些DLL。

答案 2 :(得分:1)

您有两种选择:

  1. 在目标“干净”计算机上安装“debug runtime”
  2. 在构建选项中,您可以选择“将CRT / MFC用作静态库”

答案 3 :(得分:0)

当它告诉你某些DLL丢失时,它会告诉你哪些DLL。通常,您动态链接到CRT,这意味着您可以静态链接到它,它应该可以解决问题。

答案 4 :(得分:0)

您可以使用ProcessExplorer之类的工具来检查程序在其工作的机器上使用哪些DLL(或者,VS中的“Modules”窗口或WinDbg中的“lm”命令显示相同的信息)。然后检查是否可以在“干净”机器的路径中找到它们中的每一个。