程序无法启动,因为您的计算机缺少mfc120ud.dll

时间:2014-04-08 14:07:50

标签: c++ visual-studio dll

我正在尝试运行我最近开发到另一台计算机上的应用程序,并且我使用VS2013编译了该应用程序。

运行它我得到:

  

程序无法启动,因为您的计算机缺少mfc120ud.dll。尝试重新安装该程序以解决此问题。

我从网上搜索过mfc120ud.dll但没有任何结果。我已将这个dll文件从我开发该应用程序的计算机复制/粘贴到另一台计算机的system32上,这意味着:

  

C:\ Users \ u \ System32 \ mfc120ud.dll未设计为在Windows上运行或包含错误。尝试使用原始安装介质再次安装程序,或与系统管理员或软件供应商联系以获取支持。

知道我正在开发的计算机是64位,另一台是32位,并且我从System32复制/粘贴了mfc120ud.dll版本,我该如何解决这个问题问题

4 个答案:

答案 0 :(得分:9)

  

程序无法启动,因为您的计算机缺少mfc120ud.dll。尝试重新安装该程序以解决此问题。

这是MFC的调试库之一。这是您在构建程序的调试版本时链接的库。它存在于您的开发人员计算机上,但您无法重新分发它。

您需要执行以下操作:

  1. 构建您的项目以供发布。这将链接到任何运行时DLL的发行版本。
  2. 在计划运行程序的任何计算机上安装MSVC和MFC可再发行的依赖项。另一种方法是将运行时DLL安装在与可执行文件相同的目录中。
  3.   

    我已经从System32复制/粘贴了mfc120ud.dll版本

    你不被允许这样做。回顾你的步骤并撤消它。

答案 1 :(得分:1)

检查您是否在预处理器定义中意外定义了_DEBUG。

当我从调试版本中复制粘贴的设置时,我曾遇到过同样的错误。

答案 2 :(得分:0)

对我来说,我使用VS2013 xp模式构建项目。然后部署在Windows XP系统上。然后我得到mfc120ud.dll丢失的错误。 我为vs2013安装了vcredist.exe,修复了这个问题。 我可以运行我的MFC应用程序。

答案 3 :(得分:0)

当我遇到类似的问题时,首先安装了VS 2013 C ++可再发行组件vcredist_x86.exe和vcredist_x64.exe(https://support.microsoft.com/en-us/help/3138367/update-for-visual-c-2013-and-visual-c-redistributable-package),然后确定了该文件的依赖项:

c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin>dumpbin.exe /dependents "C:\Temp\MyLibrary.dll"

Microsoft (R) COFF/PE Dumper Version 9.00.30729.01
Copyright (C) Microsoft Corporation.  All rights reserved.


Dump of file C:\Temp\MyLibrary.dll

File Type: DLL

  Image has the following dependencies:

    mfc120d.dll
    MSVCR120D.dll
    KERNEL32.dll
    USER32.dll
    OLEAUT32.dll
    mscoree.dll

  Image has the following delay load dependencies:

    MyLibraryCoreD.dll

  Summary

        5000 .data
        2000 .nep
        1000 .pdata
       4E000 .rdata
        1000 .reloc
        1000 .rsrc
       10000 .text

c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin>

接下来我搜索了注册表,它没有找到mfc120d.dll,只有mfc120.dll和mfc120u.dll(参见https://serverfault.com/questions/576831/how-do-i-know-if-a-dll-is-registered),所以我没有使用调试版本而是切换到使用mfc120的发行版本.dll和应用程序工作。