使用新安装的Visual Studio 2017创建MFC程序编译的时候出现错误:
“afxwin.h”: No such file or directory
网上的资料,选择C++桌面开发的时候应该选择
MFC and ATL support(x86 and 64)
但是即使选择上面的选项,重新编译同样出现上面的错误。
经过分析发现下面的错误:
在以前的版本中的mfc的头文件都是:
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\atlmfc\include
但是在visual studio 2017中不是这样,是下面的目录:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.11.25503\include
C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.11.25503\atlmfc\include
这就造成在包含目录中的
$(VCINSTALLDIR)/include;
$(VCINSTALLDIR)/atlmfc/include;
通过计算他们是
C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\include
C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\atlmfc\include
但是上面的目录更本不存在,因此他找不到afxwin.h等等所有的mfc头文件。
在项目中直接修改添加进去头文件和库文件可以成功编译。windows 32项目同样存在这样的问题。
实际上
$(VCINSTALLDIR)/include;
$(VCINSTALLDIR)/atlmfc/include;的设置
来自C:\Users\CCH\AppData\Local\Microsoft\MSBuild\v4.0文件夹下的props文件。
将现有的所有*.props的文件全部删除后启动visual studio 2017创建MFC程序再编译OK!
原因是我安装了visual Studio 2017以前的版本2008 2010 2012 2013等四个版本。因此同名但是内容不同因此
发生了错误!
首先需要安装“用于 x86 和 x64 的
Visual
C++ MFC”;
C:\Program Files (x86)\
Win
dows Kits\10\Include\10.0.17763.0\shared
C:\Program Files (x86)\
Win
dows Kits\10\Include\10.0.17763.0\ucrt
C:\Program Files (x86)\
Win
dows Kits\10\Include\10.0.17763.0\um
C:\Program Files (
排查了一圈最后发现,vs
2017
默认安装时东西太多,当时为了节省空间没有选择mfc组件,导致我的电脑c盘里mfc相关的源文件统统不存在,编译时候程序根据默认路径查
找
就
找
不到
afx
win
.h肯定会报错。
解决方法就是打开vs
2017
的installer ,将mfc相关组件勾上重新下载安装,ok
自己建立一个基于MFC的程序,并能对鼠标左键单击操作进行响应(弹出消息框)。
在程序编写过程中注意以下几点:
(1) 建立工程的类型(
Win
32 Application)及需要包含的头文件(
afx
win
.h)
(2) 从C
Win
App派生自己应用程序类,从CFrameWnd派生自己框架窗口类
(3) 注意程序的构建过程:从应用程序类对象开始,调用基类构造函数,在其中调用InitInstance(),因其为虚函数,会调用自己重载的InitInstance(),我们可以在其中创建窗口。
(4) 在MFC程序中使用宏进行消息映射, 消息的处理放在框架程序中。
BEGIN_MESSAGE_MAP(…,…)
…//消息映射宏
END_MESSAGE_MAP
基于C#实现寻宝游戏.zip基于C#实现寻宝游戏.zip基于C#实现寻宝游戏.zip基于C#实现寻宝游戏.zip基于C#实现寻宝游戏.zip基于C#实现寻宝游戏.zip基于C#实现寻宝游戏.zip基于C#实现寻宝游戏.zip基于C#实现寻宝游戏.zip基于C#实现寻宝游戏.zip基于C#实现寻宝游戏.zip基于C#实现寻宝游戏.zip基于C#实现寻宝游戏.zip基于C#实现寻宝游戏.zip基于C#实现寻宝游戏.zip基于C#实现寻宝游戏.zip基于C#实现寻宝游戏.zip基于C#实现寻宝游戏.zip基于C#实现寻宝游戏.zip基于C#实现寻宝游戏.zip基于C#实现寻宝游戏.zip基于C#实现寻宝游戏.zip基于C#实现寻宝游戏.zip基于C#实现寻宝游戏.zip基于C#实现寻宝游戏.zip基于C#实现寻宝游戏.zip基于C#实现寻宝游戏.zip基于C#实现寻宝游戏.zip基于C#实现寻宝游戏.zip基于C#实现寻宝游戏.zip基于C#实现寻宝游戏.zip基于C#实现寻宝游戏.zip基于C#实现寻宝游戏.zip基于C#实现寻宝游戏.zip基于C#实现寻宝游戏.zip基于C#实现寻宝游戏
Java 毕业设计,Java 课程设计,基于 SpringBoot+Vue 开发的,含有代码注释,新手也可看懂。毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。
包含:项目源码、数据库脚本、软件工具等,前后端代码都在里面。
该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。
项目都经过严格调试,确保可以运行!
1. 技术组成
前端:html、javascript、Vue
后台框架:SpringBoot
开发环境:idea
数据库:MySql(建议用 5.7 版本,8.0 有时候会有坑)
数据库工具:navicat
部署环境:Tomcat(建议用 7.x 或者 8.x 版本), maven
2. 部署
如果部署有疑问的话,可以
找
我咨询
后台路径地址:localhost:8080/项目名称/admin/dist/index.html
前台路径地址:localhost:8080/项目名称/front/index.html (无前台不需要输入)
Java 毕业设计,Java 课程设计,基于 SpringBoot+Vue 开发的,含有代码注释,新手也可看懂。毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。
包含:项目源码、数据库脚本、软件工具等,前后端代码都在里面。
该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。
项目都经过严格调试,确保可以运行!
1. 技术组成
前端:html、javascript、Vue
后台框架:SpringBoot
开发环境:idea
数据库:MySql(建议用 5.7 版本,8.0 有时候会有坑)
数据库工具:navicat
部署环境:Tomcat(建议用 7.x 或者 8.x 版本), maven
2. 部署
如果部署有疑问的话,可以
找
我咨询
后台路径地址:localhost:8080/项目名称/admin/dist/index.html
前台路径地址:localhost:8080/项目名称/front/index.html (无前台不需要输入)
如果您在使用
Visual
Studio
2019 进行 MFC 应用程序开发时遇到了
找
不到
Afx
win
.h 文件的问题,可能是因为您的安装中没有包含 MFC 组件。
在
Visual
Studio
2019 中,默认情况下,MFC 组件不是包含在所有安装选项中的。如果您选择了“使用
Visual
Studio
带有的工作负载”,那么您需要确保已选中“使用 C++ 的桌面开发”工作负载中的“MFC 和 ATL”组件。如果您使用的是自定义安装选项,则需要确保已选中“C++ MFC for v142 build tools (x86 & x64)”组件。
如果您已经安装了 MFC 组件,但仍无法
找
到
Afx
win
.h 文件,则可能需要手动添加 MFC 的 include 路径。您可以在
Visual
Studio
中打开项目属性,然后在“VC++ 目录”下的“包含目录”中添加 MFC 的 include 路径,例如:C:\Program Files (x86)\Microsoft
Visual
Studio
\2019\Enterprise\VC\Tools\MSVC\14.29.30133\atlmfc\include。