作为一个初学者,还是想记录一下自己的学习过程
VS2008的使用中,在建立项目中,新学者肯定会很疑问,建立什么样的项目,什么时候建立什么样的项目呢?
在win32中,有二种类型:win32 控制台应用程序,win32项目。win32 控制台应用程序在(命令提示符)DOS环境下运行的应用程序;win32项目则是在windows操作系统下运行的项目,范围更大,包括win32 控制台应用程序。win32包括:Win32 应用程序、控制台应用程序、DLL 或其他静态库的项目。控制台应用程序通常被设计为没有图形用户界面,并编译成独立的可执行文件。控制台应用程序通常从命令行运行,同时在命令提示和运行的应用程序之间交换输入和输出信息。(一般默认进去就是win32控制台应用程序)
可以在VC里建一个win32 application和一个win32 console application,两个dsp工程文件对比一下,你会发现应用程序里的subsystem:windows,控制台程序里的subsystem:console。 subsystem这个链接选项告诉Windows如何运行可执行文件。 subsystem是console的话,Windows在进入可执行文件的代码前,就会产生一个控制台窗口。 subsystem是windows的话,操作系统就不产生console窗口,该应用程序的窗口由用户自己创建。
控制台程序就是通过命令行的方式进行输入和输出的 ;Win32程序是它的上层概念,Win32程序可以是Console的也可以是GUI的,但一般GUI用QT实现。
Win32 程序:利用Windows编译器、连接器做出来的程序,都是所谓的Win32程序;Console程序:也是Win32程序,它是dos-like程序,可以调用C Runtime函数和不牵涉GUI的Win32API函数。Console视窗将是其标准输入输出设备(cin、cout)。
Dos程序:过去在dos环境开发的程序。它也是以main()为函数进入点,可以调用C Runtime函数,但是不具备调用Win32API函数的能力。
Windows支持的两种应用程序:
(1) 基于图形用户界面的应用程序,即GUI;
(2) 基于控制台用户界面的应用程序,即CUI.
Windows应用程序必须有一个在应用程序启动运行的调用进入点函数:
应用程序类型 进入点
需要ANSI字符和字符串的GUI应用程序 WinMain
需要ANSI字符和字符串的CUI应用程序 main
需要Unicode字符和字符串的GUI应用程序 wWinMain
需要Unicode字符和字符串的CUI应用程序 wmain
前面是DOS环境的,是单任务的
后面是WINDOWS的,支持多任务,多线程~
win32控制台程序是用来编写DOS程序的,在DOS下生成WINDOWS窗口的编写是相当麻烦的。要用DOS下c语言的绘图函数把窗口画出来。 但VC已经提供了窗口的框架和显示,我们现在没必要再去做这些工作了。 程序入口不能决定任何事,它就是一个入口,程序必须有它,程序完成什么样的功能由程序的代码来确定。 窗口就是一个图形,是由程序画出来的,代码封装在MFC底层。我们不需要具体了解,只需要知道原理就可以了。