简体   繁体   English

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

[英]The program can't start because mfc120ud.dll is missing from your computer

I'm trying to run an application that I've recently developped onto another computer and which I've compiled using VS2013. 我正在尝试运行我最近开发到另一台计算机上的应用程序,并且我使用VS2013编译了该应用程序。

Running it I get: 运行它我得到:

The program can't start because mfc120ud.dll is missing from your computer. 程序无法启动,因为您的计算机缺少mfc120ud.dll。 Try reinstalling the program to fix this problem. 尝试重新安装该程序以解决此问题。

I've searched the mfc120ud.dll from the net but without any result. 我从网上搜索了mfc120ud.dll但没有任何结果。 I've copied/pasted this dll file from the computer on which I've developed that app onto the system32 of the other computer, doing that implies: 我已经将这个dll文件从我开发该应用程序的计算机上复制/粘贴到另一台计算机的system32上,这意味着:

C:\\Users\\u\\System32\\mfc120ud.dll is either not designed to run on Windows or it contains an error. C:\\ Users \\ u \\ System32 \\ mfc120ud.dll要么不是设计为在Windows上运行,要么包含错误。 Try installing the program again using the original installation media or contact your system administrator or the software vendor for support. 尝试使用原始安装介质再次安装程序,或与系统管理员或软件供应商联系以获取支持。

Knowing that the computer on which I'm developing is a 64-bits one and the other one is 32-bits, and that I've copied/pasted the mfc120ud.dll version from System32, how do I to fix this issue? 知道我正在开发的计算机是64位的,另一个是32位,并且我已经从System32复制/粘贴了mfc120ud.dll版本,我该如何解决这个问题?

The program can't start because mfc120ud.dll is missing from your computer. 程序无法启动,因为您的计算机缺少mfc120ud.dll。 Try reinstalling the program to fix this problem. 尝试重新安装该程序以解决此问题。

That is one of the debug libraries for MFC. 这是MFC的调试库之一。 That's the library that you link against when you build debug releases of your program. 这是您在构建程序的调试版本时链接的库。 It is present on your developer machine, but you cannot redistribute it. 它存在于您的开发人员计算机上,但您无法重新分发它。

You need to do the following: 您需要执行以下操作:

  1. Build your project for release. 构建您的项目以供发布。 This will link against the release versions of any runtime DLLs. 这将链接到任何运行时DLL的发行版本。
  2. Install the MSVC and MFC redistributable dependencies on any machine on which you plan to run your program. 在计划运行程序的任何计算机上安装MSVC和MFC可再发行的依赖项。 An alternative is to install the runtime DLLs in the same directory as your executable. 另一种方法是将运行时DLL安装在与可执行文件相同的目录中。

I've copied/pasted the mfc120ud.dll version from System32 我已经从System32复制/粘贴了mfc120ud.dll版本

You are not allowed to do that. 你不被允许这样做。 Retrace your steps and undo that. 回顾你的步骤并撤消它。

Check if you've accidentally defined _DEBUG in your preprocessor definitions. 检查您是否在预处理器定义中意外定义了_DEBUG。

I once had the same error when I copy pasted settings from the debug build. 当我从调试版本中复制粘贴的设置时,我曾经遇到过同样的错误。

For me, I build the project using VS2013 xp mode. 对我来说,我使用VS2013 xp模式构建项目。 Then deployed on window XP system. 然后部署在Windows XP系统上。 Then I got error that mfc120ud.dll is missing. 然后我得到mfc120ud.dll丢失的错误。 I installed vcredist.exe for vs2013, which fixed the issue. 我为vs2013安装了vcredist.exe,修复了这个问题。 I am able to run my MFC app. 我能够运行我的MFC应用程序。

When I encountered a similar problem, first installed the VS 2013 C++ redistributables vcredist_x86.exe and vcredist_x64.exe ( https://support.microsoft.com/en-us/help/3138367/update-for-visual-c-2013-and-visual-c-redistributable-package ), then I determined what dependencies the file had: 当我遇到类似问题时,首先安装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>

Next I searched the registry and it did not find mfc120d.dll, only mfc120.dll and mfc120u.dll (see https://serverfault.com/questions/576831/how-do-i-know-if-a-dll-is-registered ), so instead of using the debug version I switched to the release version which uses mfc120.dll and the application worked. 接下来我搜索了注册表,它没有找到mfc120d.dll,只有mfc120.dll和mfc120u.dll(参见https://serverfault.com/questions/576831/how-do-i-know-if-a-dll- is-registered ),所以我没有使用调试版本,而是切换到使用mfc120.dll的应用程序并且应用程序正常工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Visual Studio c ++ LoadLibary错误:无法启动程序,因为计算机中缺少dll - Visual Studio c++ LoadLibary error: The program can't start because dll is missing from your computer 由于您的计算机上缺少freeglut.dll,因此无法启动该程序 - This program can't start because freeglut.dll is missing from your computer 该程序无法启动,因为您的计算机中缺少MSVCP90D.dll - The program can't start because MSVCP90D.dll is missing from your computer Qt + VS2010:程序无法启动,因为 <xyz> 您的计算机缺少.dll - Qt + VS2010: The program can't start because <xyz>.dll is missing from your computer 该程序无法启动,因为您的计算机缺少libgcc_s_dw2-1.dll。 简单的控制台 - The program can't start because libgcc_s_dw2-1.dll is missing from your computer. Simple console “程序无法启动,因为您的计算机中缺少 opencv_world300.dll”错误 C++ - "The program can't start because opencv_world300.dll is missing from your computer" error in C++ 该程序无法启动,因为缺少msvcr100.dll - the program can't start because msvcr100.dll is missing 程序无法启动,因为缺少* .dll - MinGW,Eclipse,Windows 7 - Program can't start because *.dll is missing - MinGW, Eclipse, Windows 7 无法启动程序,因为缺少 Qt5Cored.dll - Can't start a Program because Qt5Cored.dll is missing VS:程序无法启动,因为缺少libfftw3-3.dll - VS: Program can't start because missing libfftw3-3.dll
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM