news 2026/6/14 22:53:56

第1章 · 学前准备 — 1.1 Windows 桌面开发环境搭建

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
第1章 · 学前准备 — 1.1 Windows 桌面开发环境搭建

第1章 · 学前准备 — 1.1 Windows 桌面开发环境搭建

讲课用时建议:约 90 分钟(含演示与答疑)
适合人群:零基础或有其他语言经验、未接触过 Visual Studio 的学员
学习目标:学完本节后,你将能够独立完成 VS 安装、MFC 组件配置,并成功创建运行第一个 MFC 项目。


目录

  1. 课前说明:为什么环境搭建这么重要?
  2. Visual Studio 的选择与安装
  3. MFC 组件选装详解
  4. 项目模板与目录结构
  5. 动手练习:创建并运行第一个项目
  6. 常见问题排查
  7. 课后作业

一、课前说明:为什么环境搭建这么重要?

很多初学者会跳过这一节直奔代码,结果发现:

  • 程序编译不过,报了一堆看不懂的错误
  • 找不到 MFC 项目模板
  • 运行程序时提示缺少 DLL
  • 不知道哪个文件该改、哪个不该动

这些问题归根结底都是环境没搞对。环境搭建就像盖房子打地基 — 地基歪了,后面的一切都会出问题。本节的目标就是让每个人手里的开发环境完全一致且正确,这样后续课程中大家遇到的问题才是同一个问题,方便统一解答。


二、Visual Studio 的选择与安装

2.1 选哪个版本?

Visual Studio 有多个版本,先帮大家理清:

版本是否免费是否支持 MFC适合谁
Community(社区版)✅ 免费✅ 支持个人开发者、学生、小团队
Professional(专业版)❌ 付费✅ 支持企业开发
Enterprise(企业版)❌ 付费✅ 支持大型团队
VS Code✅ 免费❌ 不支持 MFC不适合本课程

结论:我们使用 Visual Studio Community 2022(免费且功能完全够用)。如果你的电脑上已经安装了 VS 2019 或 VS 2017,也可以使用,界面大同小异。本教程以 VS 2022 为准。

💡讲师提示:如果学员电脑配置较低,可以安装 Visual Studio 2019,它对老机器更友好。但功能差异很小,不影响教学。

2.2 去哪里下载?

访问微软官方下载页面:https://visualstudio.microsoft.com/zh-hans/downloads/

找到Visual Studio Community 2022,点击「免费下载」。下载完成后你会得到一个叫VisualStudioSetup.exe的安装程序。

⚠️注意事项

  • 不要从第三方下载站下载,可能捆绑了修改过的安装包。
  • 安装文件只有约 2-3 MB,它是一个在线安装器,真正的组件会在安装过程中从网络下载。

2.3 安装步骤(图文全流程)

步骤一:运行安装器

双击VisualStudioSetup.exe,如果弹出用户账户控制(UAC)窗口,点击「是」。

步骤二:选择工作负荷

安装器启动后,你会看到「工作负荷」选项卡。这是最关键的一步!

你需要勾选:

✅「使用 C++ 的桌面开发」

这个工作负荷会包含:

  • MSVC(微软 C++ 编译器)
  • Windows SDK
  • C++ 基础工具
  • 调试器

📌讲课重点:给学员 2 分钟时间找到这个选项并勾选。等所有人都勾好了再继续。

步骤三:确认 MFC 组件(这一步最容易遗漏)

勾选「使用 C++ 的桌面开发」后,不要直接点安装

在右侧的「安装详细信息」面板中,你会看到一个可展开的列表。找到并确保勾选:

✅「适用于 v143 生成工具的 C++ MFC(x86 和 x64)」

如果你用的是 VS 2019,名称里会是 v142;VS 2017 则是 v141。数字代表工具集版本号。

⚠️血的教训:这是整节课最容易翻车的地方!很多学员装完 VS 后发现没有 MFC 项目模板,就是因为忘了勾这个。回头补装又要再等半小时。

讲师可以带着学员做一遍:

  1. 找到「使用 C++ 的桌面开发」
  2. 点击右侧「安装详细信息」的下拉箭头
  3. 滚动找到 MFC 选项
  4. 确认前面有 ✓
步骤四:选择安装位置(可选)

点击顶部的「单个组件」或「语言包」选项卡,可以根据需要调整。一般来说保持默认即可。

如果 C 盘空间紧张,可以在这个界面底部修改「安装位置」,但要注意:

  • 核心组件(SDK、编译器、运行时)必须放在固态硬盘上
  • 工作负荷和共享组件可以放在其他盘

💡 建议学员至少给 C 盘预留30 GB空间,一个完整的 C++ 桌面开发环境大约占用 10-15 GB。

步骤五:开始安装

点击右下角「安装」按钮。安装器会开始下载并安装所有选中的组件。

这个阶段一般需要20-40 分钟,取决于网速和电脑性能。建议利用这段时间——

  • 浏览一下 VS 的官方文档
  • 预习一下本课程的下一节
  • 让自己放松一下
步骤六:首次启动

安装完成后,系统可能会提示重启。重启后,从开始菜单启动Visual Studio 2022

首次启动会让你:

  1. 登录微软账号(可以跳过,但建议登录以便同步设置)
  2. 选择开发设置 → 选择「C++」主题
  3. 选择颜色主题 → 深色或浅色,随喜好

🎯现在,你的 VS 已经准备好了!接下来我们验证 MFC 是否安装成功。


三、MFC 组件选装详解

3.1 验证 MFC 是否安装成功

打开 Visual Studio 后,我们快速验证一下:

  1. 点击「创建新项目」
  2. 在搜索框中输入MFC
  3. 你应该能看到以下三个模板:
模板名称用途
MFC 应用创建标准 MFC 桌面应用程序
MFC ActiveX 控件创建可在网页或 VB 中使用的控件
MFC DLL创建 MFC 动态链接库

如果看不到这些模板 → 说明 MFC 组件没有安装。需要回到安装器补装(见 3.2 节)。

3.2 补装 MFC 组件

如果你之前安装了 VS 但没装 MFC:

  1. 打开Visual Studio Installer(开始菜单里搜索)
  2. 找到已安装的 VS 2022
  3. 点击「修改」
  4. 勾选「使用 C++ 的桌面开发」
  5. 在右侧展开列表,勾选「适用于 v143 生成工具的 C++ MFC」
  6. 点击右下角「修改」
  7. 等待安装完成(约 5-15 分钟)

3.3 不同工具集版本的 MFC

VS 安装完成后,你的电脑上可能同时存在多个版本的 MFC 库:

工具集版本对应 VS 版本MFC 版本号库文件位置
v143VS 202214.3xVC\Tools\MSVC\14.3x.xxxxx\atlmfc
v142VS 201914.2xVC\Tools\MSVC\14.2x.xxxxx\atlmfc
v141VS 201714.1xVC\Tools\MSVC\14.1x.xxxxx\atlmfc

💡概念解释:「工具集」(Toolset)就是编译器 + 链接器 + 标准库 + MFC 库的套装。一次 VS 安装可以包含多个工具集,创建项目时可以选择用哪个。我们课程统一使用 v143(最新版)。

3.4 MFC 库的两种形态

MFC 编译出来有两种形式:

形态特点文件后缀何时使用
动态链接程序调用 mfc14x.dll,exe 体积小.dll开发调试阶段、一般发布
静态链接MFC 代码嵌入 exe 内,文件大.lib独立发布、不需要附带 DLL

在 VS 项目属性中可以通过「MFC 的使用」选项在两者之间切换。我们暂时使用默认的「在共享 DLL 中使用 MFC」即可,后续章节会详细对比。

3.5 MFC 组件全家福

除了 MFC 核心库,安装时还会获得这些附加成果:

  • MFC 头文件afxwin.hafxext.hafxcmn.h等 — 编程时#include的入口
  • MFC 库文件.lib.dll— 链接时需要的二进制
  • MFC 源码:在atlmfc\src\mfc目录下 — 高级阶段调试和学习的宝藏
  • MFC 向导(Wizard):你在新建项目时看到的配置对话框
  • MFC 工具:如资源编辑器(Resource Editor),可直接拖拽设计界面

四、项目模板与目录结构

4.1 新建第一个 MFC 项目

让我们一步步创建一个项目来观察目录结构。

① 启动向导

  • VS 菜单 → 文件 → 新建 → 项目
  • 选择「MFC 应用」
  • 项目名称:HelloMFC
  • 位置:选择一个方便找到的文件夹(建议D:\MFC_Projects
  • 解决方案名称:和项目名保持一致即可
  • 点击「创建」

② MFC 应用程序向导

这一步你会看到一个多页面的向导。不要害怕,我们只改两处,其他全部默认。

  • 应用程序类型页面:
    • 选择「基于对话框」 ← 这是我们第一个程序的类型
    • MFC 使用方式:保持「在共享 DLL 中使用 MFC」
    • 点击「完成」

📌讲课提示:此时可以先不解释每个选项的含义,让学员跟着点就行。等 4.2 节讲解目录结构时再回头解释。

③ 项目生成完毕

向导完成后,VS 会自动生成一系列文件。你会在右侧的「解决方案资源管理器」中看到它们。

4.2 解决方案 vs 项目

很多初学者会混淆这两个概念:

解决方案 (Solution) ← 一个 .sln 文件 ├── 项目 A ← 一个 .vcxproj 文件(比如你的 MFC 程序) ├── 项目 B ← 另一个 .vcxproj(比如一个 DLL 库) └── 项目 C ← 又另一个(比如单元测试)
概念比喻对应文件
解决方案一个「大文件夹」,装着所有相关项目HelloMFC.sln
项目一个「独立的产出物」,比如一个 exe 或 dllHelloMFC.vcxproj

简单的程序只有一个项目,但企业级软件通常一个解决方案下有多个项目。现在我们只需要一个项目就够了。

4.3 逐文件解析目录结构

创建完HelloMFC后,你的磁盘上会生成以下文件。我们按重要程度从高到低来看:

HelloMFC/ ← 解决方案目录 ├── HelloMFC.sln ← 解决方案文件(双击它打开整个项目) │ ├── HelloMFC/ ← 项目子目录(= 项目名称) │ ├── HelloMFC.vcxproj ← 项目文件(定义编译选项、源文件列表等) │ ├── HelloMFC.vcxproj.filters ← 文件过滤器(VS 里看到的虚拟文件夹) │ ├── HelloMFC.vcxproj.user ← 用户级设置(每个开发者不同,不提交到 Git) │ │ │ ├── HelloMFC.h ← ★ 主头文件(声明 CHelloMFCApp 类) │ ├── HelloMFC.cpp ← ★ 主源文件(InitInstance 等入口逻辑) │ ├── HelloMFCDlg.h ← ★ 对话框头文件(声明对话框类) │ ├── HelloMFCDlg.cpp ← ★ 对话框源文件(按钮点击等业务逻辑) │ │ │ ├── pch.h ← 预编译头(加速编译,通常包含 afxwin.h) │ ├── pch.cpp ← 预编译头的 cpp(只有一行 #include "pch.h") │ │ │ ├── framework.h ← MFC 框架头汇总(自动生成,一般不用改) │ ├── targetver.h ← Windows 版本目标定义 │ ├── Resource.h ← ★ 资源 ID 定义(菜单、按钮、对话框的 ID) │ │ │ ├── HelloMFC.rc ← ★ 资源文件(对话框布局、图标、字符串表) │ └── res/ ← 资源子文件夹 │ ├── HelloMFC.ico ← 程序图标 │ └── HelloMFC.rc2 ← 手动维护的资源(一般不动) │ ├── Debug/ ← Debug 编译输出(运行时自动生成) └── x64/ ← x64 编译输出(运行时自动生成)

4.4 你需要关心的核心文件(5+1 法则)

作为初学者,你 90% 的时间只和这 6 个文件打交道:

文件干什么用类比
HelloMFCDlg.h定义对话框类(成员变量、成员函数声明)遥控器的说明书
HelloMFCDlg.cpp实现对话框的行为(按钮点击做什么)遥控器的实际电路
HelloMFC.h应用程序类声明不常改
HelloMFC.cppInitInstance— 程序启动的入口逻辑车钥匙
HelloMFC.rc界面布局(可视化编辑)装修设计图
Resource.h控件 ID 编号表房间的门牌号

🎯记住:动手写代码主要在*Dlg.h*Dlg.cpp中;拖拽界面在.rc文件中;给控件起名字在Resource.h中。

4.5 解决方案资源管理器怎么看

VS 右侧的资源管理器里,你看到的可能是「虚拟文件夹」而不是磁盘上的实际目录:

解决方案 "HelloMFC" (1/1 项目) └── HelloMFC ├── 应用程序 ← 虚拟分组,对应 App 类 ├── 对话框 ← 虚拟分组,对应 Dlg 类 ├── 资源文件 ← 虚拟分组,对应 .rc / Resource.h / res\ │ ├── HelloMFC.rc │ └── HelloMFC.ico ├── 头文件 ← 虚拟分组,所有 .h ├── 源文件 ← 虚拟分组,所有 .cpp └── 预编译头 ← 虚拟分组

这些分组由.vcxproj.filters文件定义,不影响编译,纯粹方便浏览。双击任何一个文件,它会在左侧的代码编辑区打开。

💡讲师提示:可以带学员做一个实验 — 在文件资源管理器和 VS 的解决方案资源管理器之间来回对比,帮助理解虚拟文件夹和真实目录的对应关系。


五、动手练习:创建并运行第一个项目

讲到这里,该让学员自己动手了。以下操作建议讲师在投影仪上先演示一遍,然后学员跟着做。

5.1 创建项目

  1. 文件 → 新建 → 项目 → MFC 应用
  2. 名称:MyFirstMFC
  3. 位置:选一个好找的文件夹
  4. 应用程序类型 →基于对话框
  5. 点击「完成」

5.2 运行程序

点击顶部工具栏的绿色 ▶ 按钮(或按F5),程序会编译并运行。

你会看到:一个空白的小窗口弹出,标题栏写着「MyFirstMFC」。

这只有几百行自动生成的框架代码,但它已经是一个完整可运行的 Windows 桌面程序了!它甚至自带:

  • 标题栏的最小化 / 最大化 / 关闭按钮
  • 默认的「确定」和「取消」按钮
  • 窗口拖动功能

5.3 做一个小修改,体会开发流程

我们来给窗口加点东西,体验一下 MFC 的开发循环:

  1. 在解决方案资源管理器中双击MyFirstMFC.rc,再双击Dialog文件夹下的对话框
  2. 你会看到对话框设计器— 一个可视化编辑界面
  3. 从左侧「工具箱」中拖一个Static Text(静态文本)控件到对话框上
  4. 右键这个控件 → 属性 → 把Caption改成你好,这是我的第一个 MFC 程序!
  5. 再拖一个Button按钮进来,把Caption改成点我
  6. 双击这个按钮,VS 会自动跳转到MyFirstMFCDlg.cpp并生成一个点击处理函数
  7. 在生成的函数体中写一行代码:
voidCMyFirstMFCDlg::OnBnClickedButton1(){AfxMessageBox(_T("你成功点击了按钮!"));}
  1. 按 F5 运行,点击「点我」按钮 — 弹出了消息框!

🎉恭喜:你已经完成了第一个 MFC 交互程序。虽然简单,但这里面包含了控件拖放、属性修改、事件响应三大核心操作,后续的所有复杂程序都是这套流程的扩展。

5.4 关闭程序 vs 停止调试

  • 点窗口的关闭按钮(✕)→ 程序正常退出
  • 点 VS 工具栏上的红色 ■ → 强制停止(调试时用)

六、常见问题排查

这一节请学员标记好,后面遇到问题先来这里找答案。

Q1:新建项目时找不到 MFC 模板

原因:安装 VS 时没有勾选 MFC 组件。

解决:打开 Visual Studio Installer → 找到 VS → 修改 → 勾选「使用 C++ 的桌面开发」→ 确认右侧列表中的 MFC 已勾选 → 修改。

Q2:编译时提示「找不到 afxwin.h」或类似错误

原因:同上,MFC 组件未安装或不完整。

解决:同上。

Q3:运行时提示「找不到 mfc140u.dll」

原因:你的程序链接了 MFC 动态库,但目标机器上没有安装对应的 VC++ 运行库。

解决(二选一):

  • 安装 Visual C++ Redistributable(推荐,适合分发程序)
  • 项目属性 → MFC 的使用 → 改为「在静态库中使用 MFC」(程序变大但无需外部 DLL)

Q4:F5 运行后窗口一闪而过

原因:程序正常执行完毕后退出了,或者有个别错误导致 crash。

解决

  • 如果是基于对话框的程序不会一闪而过;如果一闪而过说明你可能选了错误的模板类型
  • 可以在return FALSE;前面打一个断点,逐行检查

Q5:修改了代码但运行结果没变

原因:项目没有重新编译。

解决:使用「生成 → 重新生成解决方案」代替直接按 F5。按 F5 只编译改动过的文件,有时 VS 检测不到改动。

Q6:资源编辑器打不开 .rc 文件

原因:某些文件关联出了问题。

解决:右键.rc文件 → 打开方式 → 选择「资源视图编辑器」。不要用文本编辑器直接打开.rc文件。

Q7:安装进度条卡住不动

原因:网络问题或磁盘空间不足。

解决

  • 检查 C 盘是否还有 30 GB 以上
  • 关闭杀毒软件
  • 断开 VPN
  • 如果持续卡住,取消后重新运行安装器

七、课后作业

学完本节后,请独立完成以下任务:

作业一:环境检查(必做)

  1. 打开 VS → 创建新项目 → 确认能看到 MFC 模板
  2. 新建一个基于对话框的 MFC 项目,名称随意
  3. 编译运行,确保窗口能正常弹出
  4. 截图发到群里(证明环境已就绪)

作业二:界面小实验(选做)

  1. 在对话框上拖放 3 种不同的控件(文本、按钮、编辑框)
  2. 给按钮添加点击事件
  3. 点击按钮时,用AfxMessageBox弹出编辑框中输入的文字
  4. 提示:获取编辑框文字用GetDlgItemText,或者先用「添加变量」向导绑定一个CString变量

作业三:目录探索(选做)

  1. 找到你项目的实际文件夹
  2. 用记事本打开.vcxproj文件
  3. 观察一下它的 XML 结构(不需要完全看懂,只是建立感性认识)
  4. 找出Debug文件夹里生成的.exe文件

📖下一节预告:1.2 C++ 核心语法回顾 — 我们会快速过一遍继承、虚函数、智能指针等你在 MFC 中天天打交道的 C++ 特性。


本节完 · 有任何问题请随时在课堂上举手或在课后群里提问

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/14 22:46:00

美术用品厂主要分布在哪里?国内主要产区概览

美术用品品类繁多,包括颜料(水彩、丙烯、油画)、画笔、画布、素描铅笔、调色板、马克笔等。既有面向专业艺术家的高端产品,也有面向学生和儿童的大众入门级产品。国内生产企业分布有明显的产区特征。 浙江宁波:颜料和画材出口核心产区 宁波是国内美术用品出口的重要基地,尤其是…

作者头像 李华
网站建设 2026/6/14 22:41:14

自治 Agent 的能效与成本优化

自治 Agent 的能效与成本优化:从第一性原理到云边端全场景落地 元数据 标题优化说明:将核心主题与技术方法论、落地场景绑定,满足“信息密度+技术深度+实践吸引力”三要素; 关键词:自治Agent(Autonomous Agent)、能效优化(Energy Efficiency Optimization)、成本优化(…

作者头像 李华