【问题标题】:The program can't start because mfc120ud.dll is missing from your computer程序无法启动,因为您的计算机缺少 mfc120ud.dll
【发布时间】:2014-05-21 07:09:14
【问题描述】:

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

运行它我得到:

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

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

C:\Users\u\System32\mfc120ud.dll 不是为在 Windows 上运行而设计的,或者它包含错误。尝试使用原始安装介质重新安装程序,或联系您的系统管理员或软件供应商寻求支持。

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

【问题讨论】:

  • 这是 MFC 的调试版本,它只存在于安装了 VS 的机器上。如果要部署调试版本,使用 C++ 没有多大意义。而是部署发布版本。并部署运行时依赖项,如 mfc120u.dll 和朋友。如果您不知道自己需要什么,请使用this installer
  • 您能否发布该应用程序的代码,以便我可以尝试在我的系统上运行它,看看是否可以重现错误。
  • @HansPassant,对不起,我没有理解你的意思。我是否需要在我正在测试我的应用程序的计算机上安装该安装程序?

标签: c++ visual-studio dll


【解决方案1】:

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

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

您需要执行以下操作:

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

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

你不能这样做。追溯您的步骤并撤消它。

【讨论】:

  • 但我确定我正在运行我的应用程序的发布版本!
  • 您在问题中提供的信息直接与该信念相矛盾
【解决方案2】:

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

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

【讨论】:

  • 嗯,这应该是这个问题的答案。我在谷歌上找到了这个,因为我遇到了和我自己解决的完全相同的问题。我在发布配置文件中编译了一个设置了 _DEBUG 标志的应用程序
【解决方案3】:

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

【讨论】:

    【解决方案4】:

    当我遇到类似问题时,首先安装了 VS 2013 C++ redistributables 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 的发布版本并且应用程序正常工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-10
      • 2019-03-16
      • 2013-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多