Visual Studio 2010可以创建多种项目,如图1所示。
图1 创建新工程
,
1,Win32控制台应用程序
Win32控制台项应用程序指在32位Windows命令提示符(即所谓的DOS)环境下运行的应用程序。它通常被设计为没有图形用户界面,并编译成独立的可执行文件。它通常从命令行运行,同时在命令提示和运行的应用程序之间交换输入和输出信息。
创建一个Win32控制台项应用程序,名称为test。在”解决方案“视图中可以看到本项目包含的主要文件,如图2所示。由图2可知,其源文件还是比较少的。
图2 解决方案视图
查看test.cpp的内容,如图3所示。根据第一行注释可以知道,这个源文件是本项目的入口点,主函数名为_tmain。在里面添加printf("hello world!");,启动调试,运行结果如图4所示。
图3 test.cpp
图4 运行结果
2,Win32项目
Win32项目指运行于32位Windows操作系统中的应用程序,包括win32控制台应用程序、Win32 应用程序、DLL 或其他静态库的项目。
创建一个Win32项目,名称为test,查看其解决方案如图5。比较图5和图2可知,Win32项目没有比Win32控制台应用程序多很多源文件,但是头文件多了一些。
图5 解决方案
查看test.cpp文件的第一行注释,可知Win32项目的入口也在test.cpp中。如图6所示。
图6 从test.cpp看入口
图7是test.cpp主函数的部分截图。由图7可知,入口函数为_tWinMain,这是和Win32控制台应用程序所不同的。除此之外,Win32项目的test.cpp的内容要比Win32控制台应用程序的负责很多。Win32项目的test.cpp不经包括了入口函数_tWinMain,还包含了窗口的创建、注册、显示以及消息的循环。
图7
3,MFC应用程序
MFC应用程序,即使用Microsoft基础类库的应用程序。
创建一个MFC应用程序项目,名称为MFC_app。通过解决方案资源管理器查看其头文件和源文件,如图8所示。对比图2,图5和图8,可以发现图8中的头文件和源文件都多了很多!这就是MFC!
图8
既然这么多源文件,那么本程序的入口在哪里呢?是不是在和项目名同名的MFC_app.cpp中呢?不是!经过查找发现,在图8中的源文件都不包含入口!
由于MFC应用程序是使用托管的方式的,因此程序入口并不在图8中,而是在MFC的底层实现中。经过单步调试发现,本程序的入口在appmodul.cpp中,入口函数名为_tWinMain,如图9所示。
图9
4,空项目
空项目,就是不包含任何模版的项目。在图2、图5和图8中都可以看到,它们都包含了一定数量的头文件和源文件。创建一个空项目,名称为empty,通过决解方案资源管理器查看其头文件和源文件,如图10所示。从图中可以发现,没有任何的头文件和源文件!
图10
这种项目有什么用呢?在看《MFC Windows应用程序设计(第2版)》的时候,里面有一些例程是用VC6.0写的,但是我又不想安装那么落后的软件,因此可以使用Visual Studio 2010创建一个空项目来达到同样的目的!
5,ATL项目
6,MFC DLL
7,Windows窗体应用程序
8,CLR控制台应用程序
参考资料
[1]Win32控制台程序是什么
[2]mfc应用程序