Windows零基础入门:1.9 Win32与控制台程序项目区别
手机阅读 | 转发赚积分
手机收藏 | 分享给好友
手机收藏 | 分享给好友
上节课《Windows零基础入门:1.8 Win32与控制台程序入口函数对比》中,我详细对比分析了Win32程序和控制台程序的入口函数的区别,实际上,区别不大。
入口函数的形式都是一样的,只是根据程序的类型,有一些不一样的地方,已符合各种程序的需求。如果不清楚,请仔细阅读上节课的文章内容。
既然入口函数一样,那么,我们可以随心所欲的写入口函数,而不用死记硬背。我们知道每一个细节的含义,自然,就不会有一种陌生的恐惧。当你知道它的作用,你会觉得有一种掌握了的感觉,而这种感觉就是增加自信的东西。好吧,不多说了。
那么我们了解到入口函数的关系,那么我们在创建控制台程序项目和Win32程序项目,又有什么区别呢?
有时候我们创建一个项目,发现你原本要创建Win32程序项目的,却发现你创建成了控制台程序项目,怎么办?你是不是下意识觉得自己大意,手抖了呢?是不是想赶紧关掉这个项目,然后重新创建呢?假如项目的名字不还是刚才那个,那么此时,你是没有办法的。你不能在同一个文件夹下创建一个同名项目覆盖之前的项目。要么你就换一个文件夹,要么就改名。然而多数时候,你都不想做。那么你就打开原先的项目,将原先的项目名改成另外一个,或者删掉刚才那个项目,然后重新创建一个正确的Win32项目吧。
如果你了解Win32程序项目和控制台项目的一点区别,那就省事了。知识改变命运,此之谓也!
我们创建一个空项目,然后自己添加文件,然后写入口函数。你会发现,在代码文件中,就一个入口函数不一样,包含的头文件不一样,其他的你也没做什么。那么,两个项目工程到底有什么区别,是不是可以设置一下,就不用重新创建项目了呢?
是的,确实可以如此,而且推荐这样做。
在代码上,实际上,我们可以简单的删除已有的入口函数,然后设置一下项目的设置即可完成这个目的。设置的方法就是:光标放在cpp文件上,然后选择VS菜单“项目”,然后单击“【项目名称】属性”,弹出项目的属性页。在“配置属性”->“链接器”->“系统”->“子系统”的选项中,你可以看到当前项目的设置。如果当前项目时控制台项目,那么显示的是【控制台(/SUBSYSTEM;CONSOLE)】。这个设置表示的是,你的项目类型通过编译器生成的程序类型。而这个程序类型影响链接器链接什么入口点函数。而这个入口点函数又会影响系统运行你的exe程序文件。设置图如下:
Win32课程菜单
-
- 第1节 指定入口点函数
- 第2节 VS创建Win32项目
- 第3节 exe程序文件
- 第4节 WinMain函数
- 第5节 实例句柄和命令行
- 第6节 第一个程序
- 第7节 Win32窗口机制和消息机制
- 第7节+ 消息机制补充说明(消息队列)
- 第8节 什么是窗口类
- 第9节 窗口类、进程和窗口过程
- 第10节 三种窗口类
- 第11节 修改窗口类
- 第12节 修改系统窗口类(子类化)
- 第13节 修改窗口类的机制和论证
- 第14节 窗口类使用
- 第15节 窗口类使用之窗口类结构体
- 第16节 窗口类结构体之窗口类风格
- 第17节 窗口类结构体之去除窗口类风格
- 第18节 窗口类结构体之水平重绘和垂直重绘
- 第19节 窗口类结构体之CS_DBLCLKS
- 第20节 窗口类结构体之CS_OWNDC
- 第21节 窗口类结构体之CS_CLASSDC
- 第22节 窗口类结构体之CS_PARENTDC
- 第23节 窗口类结构体之CS_NOCLOSE
- 第24节 窗口类结构体之CS_SAVEBITS
- 第25节 窗口类结构体之CS_BYTEALIGNCLIENT
- 第26节 窗口阴影效果CS_DROPSHADOW解密