ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

MFC 第1章:用 VS2010 编写 WIndows SDK 程序

MFC 第1章:用 VS2010 编写 WIndows SDK 程序 专栏导航上一篇第1章用 VS2019 编写 WIndows SDK 程序回到目录下一篇第1章[Win32 章节]Windows 简史本节前言上一节我们以 VS2019 为例讲解了编写 WIndows SDK 程序的流程。本节我们以 VS2010 为例来讲解 WIndows SDK 程序的编写流程。一. 建立 WIndows SDK 解决方案请大家打开自己的 VS2010 软件然后呢随我一起来操作。首先呢我们依次点选【文件】【新建】【项目】菜单项过程如下图所示。图1图2由于我在安装了 VS2010 以后在首次启动 VS2010 的时候我选择的默认开发环境是 Visual C 开发环境所以在弹出的图2所示的界面里在左侧的【已安装的模板】下面最先出现的是【Visual C】。在你那里如果你所当初在首次启动 VS2010 的时候你选择的默认开发环境不是 Visual C 开发环境那么你需要找到下图所示的【其他语言】选项。图3在图3 里面找到红色框线所示的选项然后红色框线里面的左侧的三角号展开这一选项就会出现【Visual C】选项了。在这里我们首先要调出【Visual C】选项。在确保已经调出了【Visual C】选项以后点击【Visual C】选项如下图所示。图4在图4 里面在左侧的【已安装的模板】里面调出【Visual C】选项并点击它使这一选项呈现出高亮显示的状态。然后呢我们看中间的框框。这时在中间的框框里面会出现包含着【Win32 项目】选项点击选择它然后我们继续进行后续的工作。接下来我们需要在图4 所示的对话框的下方的几个输入框里面设置项目名称项目路径解决方案名称等等的东西。首先呢我们在界面下方找到【名称】字样如下图所示。图5找到图5 里面的红色框线所示的【名称】字样它右边的输入框便是用来设置项目名称或者说是用来设置工程名称的。在软件操作里面项目和工程往往是同样的意思。因为它们都对应着英文单词【project】。我们在【名称】右边的输入框里输入【SDK_02】文本结果如下图所示。图6我们发现在名称一栏里面输入【SDK_02】的时候【解决方案名称】会自动跟着变为【SDK_02】。一般地我们往【名称】一栏的右边输入文本的时候【解决方案名称】一栏会保持同样的变动。在这里我略微说一下解决方案与项目的方案。一个解决方案它里面可以包含着多个项目也可以仅仅包含一个项目。在初学阶段我们所建立的项目都是说一个解决方案里面包含着一个项目并且解决方案的名字和项目的名字是一样的。在我的学习经历中我在学习佩措尔德的第五版Windows程序设计教材的时候算是第一次接触了一个解决方案里面包含着多个项目的情况。在本节以及我们平时的许多的练习之中基本上我们所遇到的情况下都是说一个解决方案里面仅有一个项目我们也可以简单地认为解决方案和项目的概念差不多。本次我们想要创建一个【SDK_02】项目我们可以新建一个项目并在【名称】一栏的右边输入【SDK_02】字样然后让【解决方案名称】自动跟随这个【名称】栏。将来的某一次我们也可以创建一个【test01】项目在【名称】栏的右边输入【test01】文本然后让【解决方案名称】一栏自动跟随这个【名称】栏。无论是我们想要新建一个什么名称的项目都可以采用这种做法我们仅仅是设置【名称】一栏的文本以设置项目名称然后让解决方案名称与项目名称保持一致就好了。在初学阶段在不需要使用包含多个项目的解决方案的时候我们都可以采用这种建立项目的方法。我们在【名称】栏的右边填写好了【SDK_02】这个项目名称以后我们接着进行后续的操作。接下来我们找到【名称】栏下面的【位置】栏。位置栏右边的文本框可以用来设置解决方案的保存路径。我们可以点击【位置】一栏的文本框右边的【浏览】按钮以设置解决方案的保存路径。点击了【浏览】按钮弹出下图所示的对话框。图7图7所示的【项目位置】对话框是用来设置解决方案的保存路径的。这个对话框大家应该是经常能够接触到我相信大家应该能够了解它的基本用法。我们在对话框左侧找到【桌面】如果不能够直接看到可以拖动左侧的滚动条滑块来寻找【桌面】字样。找到以后点击选中它结果如下图所示。图8在左侧点选了【桌面】选项以后我们点击对话框右下方的【选择文件夹】按钮。也就是我们要将解决方案的路径设置在桌面上结果如下图所示。图9如图9的红色框线所示【位置】一栏已经被设置为桌面路径了。在我这里桌面的路径为【C:\Users\Administrator\Desktop\】。路径最左边的【C:\】就是 C 盘的根文件夹。同理E 盘的根文件夹为【E:\】D 盘的根文件夹为【D:\】。【C:\】右边的内容是各级文件夹了。不同的文件夹之间用反斜杠【\】来分隔。有空的话最好大家能够了解一下路径的表示方法。你可以通过学习 DOS 命令学习 Linux 操作系统命令来了解这一知识。在这里我姑且就说这么多。到这里我们已经设置好了项目名称解决方案名称还有保存路径。接下来我们点击右下方的【确认】按钮结果如下图所示。图10在图10 里面我们点击【下一步】按钮结果如下图所示。图11在图11里面我们重点关注两个红色框线所示的位置。上面的红色框线它是位于【应用程序类型】选项组中。在这里我们要建立的 Windows SDK 程序项目它是一个 WIndows 应用程序所以我们要点击选择上面的红色框线所示的【WIndows 应用程序】选项。然后呢我们来看下面的红色框线。它位于【附加选项】选项组中。在这里我们需要将红色框线所示的【空项目】复选框给勾选上。选好了以后界面如下图所示。图12在图12 里面重点关注两个红色框线的选择结果。选好了以后我们点击右下方的【完成】按钮回到软件主界面。二. 添加 C 源文件在软件的主界面里面我们找到解决方案资源管理器如下图所示。图13在这里我们要来添加一个 C 源文件。请大家跟我一起操作。我们将鼠标移动到图13 里面的【源文件】的区域然后点击鼠标右键弹出下图所示的界面。图14在图14 所示的界面中我们依次点选【添加】【新建项】过程如下图所示。图15图16在图16里面我们首先点击选择中间区域的上方的【C 文件】选项然后在下方的【名称】栏右边的文本框里面输入【WinMain.cpp】以设置本次要添加的 C 源文件的文件名设置好了以后如下图所示。图17在图17里面注意两个红色框线位置处的设置结果。设置好了以后我们点击右下方的【添加】按钮。结果如下图所示。图18我们发现在中间区域出现了一个可以输入代码的区域它的上方有一个选项卡显示为【WinMain.cpp】。我们在这个代码输入区域输入我们的代码。代码内容如下。#include Windows.h int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { MessageBox(NULL, TEXT(这是一个 Windows SDK 程序), TEXT(WIndows SDK), 0); return 0; }图19这里的代码是什么意思你暂时不用管。因为在本专栏后面的章节里我们会讲解它。而在本节你只需要把上面的代码块中的代码复制到你的 WinMain.cpp 源文件里面就可以了。在你那里输入了代码以后按【Ctrl S】快捷键可以保存【main.c】代码文件。也可以依次点击【文件】【保存】菜单命令以保存【WinMain.cpp】。菜单命令如下所示。图20【文件】菜单下面的【保存】命令它的命令名字随着你所保存的文件名称而发生变动。如果你要保存的文件是【a01.h】则【保存】菜单项的名字就会变为【保存 a01.h】。但不管它的名称是啥它依然是我们这里所说的【保存】菜单项。保存好了【WinMain.cpp】以后我们来编译一下这个项目。三. 编译项目我们依次点击【生成】【生成解决方案】然后我们的这个项目就会开始编译了。过程如下图所示。图21图22在图22 中的红色框线区域显示了编译结果为【成功1个】成功当然就好了啊。接下来我们来运行一下这个项目。四. 运行项目我们依次点击【调试】【开始执行不调试】菜单命令过程如下图所示。图23图24对于图24 消息框大家喜欢吗这就是本次的 C 源文件所编译出来的软件。虽然很简单但是好歹也是一个软件啊。而且还是一个图形界面的软件。这是我们编写出来的一个图形界面的软件。开心不接下来我们先用鼠标点击一下图24 中的【确定】按钮以关闭这个软件。到这里运行【SDK_02】这一工作我们也完成了。五. 生成解决方案与重新生成解决方案的区别我们点击了 VS2010 的【生成】菜单命令以后可以看到【生成解决方案】和【重新生成解决方案】两个菜单项。如下图所示。部分【生成】菜单那么【生成解决方案】和【重新生成解决方案】这俩菜单命令有啥区别呢我们在写好了项目代码以后在第一次生成解决方案的时候 VS2010 会将所有的源文件都进行编译然后呢将所有的目标文件进行链接以生成可执行文件。这个时候你使用【生成解决方案】与【重新生成解决方案】这俩命令的效果是一样的。我们写好了一个项目代码以后有可能呢我们会需要去修改代码。修改了代码以后假如呢你只想要对修改了的代码文件进行重新编译然后让新编译出来的目标文件与之前的未作改动的目标文件进行链接以生成可执行文件那么你就可以使用【生成解决方案】菜单命令。如果呢你修改了程序代码以后你希望程序中的所有的代码文件都被重新编译然后呢所有的目标文件再来个重新链接这种情况下你需要使用【重新生成解决方案】命令。当我们的项目的代码数量比较少的时候看不出来这俩命令有啥区别 。然而当你的项目有几百个几千个甚至是几万个源文件的时候那么【生成解决方案】所花费的时间与【重新生成解决方案】相比会是显著地小很多的。六. 关闭解决方案在上面的讲解中我讲解了建立一个 Windows SDK 解决方案编译和运行代码的方法。既然是已经运行成功了那么接下来我们就可以来学习将这个解决方案给关闭掉的方法。我们依次点选【文件】【关闭解决方案】过程如下图所示。图25图26七. 再谈解决方案与项目的区别这个区别我是觉得不太容易讲清楚。我想一个简单的区分就是你可以认为它们是不同的文件夹。在本节我们在新建项目的时候我们是将【位置】参数设置在了桌面位置。我们就去看一看电脑桌面。图28图28的内容就是我的电脑桌面的内容。红色框线显示了【SDK_02】这个文件夹。在这里呢桌面上的【SDK_02】文件夹它是【解决方案文件夹】。我们双击进入【SDK_02】文件夹里面。如下图所示。图29从图29 里面【SDK_02.sln】文件。【.sln】后缀中的【sln】它其实是【solution】的缩写在这里它是解决方案的意思。以【.sln】为后缀的文件是解决方案文件。这个解决方案文件所在的文件夹便是解决方案文件夹。根据图29我们可以看到在这个解决方案文件夹里面它包含了与解决方案同名的【SDK_02】文件夹。解决方案文件夹里面的【SDK_02】文件夹它又是啥呢它其实是项目文件夹。我们双击进去看一看如下图所示。图30在图30 里面我们可以看到【WinMain.cpp】源文件。什么叫做项目文件夹里面包含着我们所编写的所有的源文件与头文件等等的项目文件所在的文件夹就是项目文件夹。在这里我们可以梳理一下。在新建项目的时候我们会给【位置】参数设置一个路径。在这个路径里面我们看到的那个文件夹就是解决方案文件夹。在解决方案文件夹里面我们可以找到以【.sln】为后缀的解决方案文件。然后呢在解决方案文件夹里面我们可以看到与解决方案文件夹同名的一个文件夹这个文件夹就是项目文件夹。进入项目文件夹里面我们可以看到里面包含着全部的源文件与头文件等等的项目文件。说到这儿的话我想对于【解决方案】与【项目】的概念你应该是能懂了吧你要是不懂的话我一时半会儿也不知道要怎么给你讲了。结束语本节的内容应该是不难的。只是解决方案与项目的概念区别稍微有点不好讲。希望你能够学会本节的内容。在这里我讲解了用 VS2010 来建立 WIndows SDK 解决方案的方法。本节和上一节是基础的软件操作。从下一节开始我们要来花费几节的时间来讲解一下本节和上一节所涉及的代码。本节结束。专栏导航上一篇第1章用 VS2019 编写 WIndows SDK 程序回到目录下一篇​​​​​​​第1章[Win32 章节]Windows 简史
返回列表