VC++ | VS2017编译MFC程序报错

VC++ | VS2017编译MFC程序报错

al error C1189: #error: Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d]


1>------ 已启动全部重新生成: 项目: IDTools, 配置: Release Win32 ------
1>D:\03_tools\DesTools\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Platforms\Win32\PlatformToolsets\v141_xp\Toolset.targets(39,5): warning MSB8051: 面向 Windows XP 的支持已被弃用,将来的 Visual Studio 版本不再提供该支持。请访问 https://go.microsoft.com/fwlink/?linkid=2023588,获取详细信息。
1>stdafx.cpp
1>d:\03_tools\destools\microsoft visual studio\2017\community\vc\tools\msvc\14.16.27023\atlmfc\include\afx.h(24): fatal error C1189: #error:  Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d]
1>已完成生成项目“IDTools.vcxproj”的操作 - 失败。
========== 全部重新生成: 成功 0 个,失败 1 个,跳过 0 个 ==========

修改如下:

img

程序在XP中运行报错:

mfc140.dll为无效的windows映像

img

img

  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/675851
  • 这篇博客也不错, 你可以看下VS/MFC - 无法启动此程序因为计算机中丢失mfc140d.dll.
  • 除此之外, 这篇博客: 误删mfc140u.dll咋办??中的 解决办法: 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 到下面的链接里下载mfc140u.dll文件,记住一定是32位(x86)的软件下载32位的.dll,64位的软件下载64位的.dll,否则会出现0xc000007b!
    由于我的软件是2012版本32位的,因此我下载的是32位的,下载好之后放到MAX里就完成了。如下图

    链接:https://cn.dll-files.com/mfc140u.dll.html
    将.dll放到NI MAX文件夹里
    2020.2.5