VS2010 C++自动创建头文件问题。

VS2010 C++自动创建头文件问题。,第1张

不自动包含iostream,是因为不是所有程序都用它,有的程序甚至不需要输入输出,所以需要手动包含。

stdafx是预编译头文件,也就是说,这个文件在编译开始的时候只编译一次,把编译结果保存起来,以后再有其他的类包含这个头文件时,就不需要再次编译了。所以一般把最常用的头文件都放到stdafx里面,这样可以大幅度提高编译速度。

stdafx.h说明:

stdafx的英文全称为:Standard Application Framework Extensions(标准应用程序框架的扩展)。所谓头文件预编译,就是把一个工程(Project)中使用的一些MFC标准头文件((如Windows.H、Afxwin.H)预先编译,以后该工程编译时,不再编译这部分头文件,仅仅使用预编译的结果。这样可以加快编译速度,节省时间。

targerver.h说明:

定义程序运行的环境,如限制程序只能在XP下运行,限制程序在只能在Vin7下运行或限制程序只能在XP以上系统运行,或限制程序只能在Server2003以上系统运行。

用法:

#ifndef WINVER                      //程序中没有定义WINVER宏时

#define WINVER 0x0600            // 定义WINVER为0x0600    //0x0600表示Windows Vista

#endif

 #ifndef _WIN32_WINNT                // 程序中没有定义_WIN32_WINNT宏时

#define _WIN32_WINNT 0x0600     // 定义_WIN32_WINNT为0x0600    //0x0600表示Windows Vista

#endif

附:

0×0500 表示Windows 2000,

0×0501为Windows XP,

0×0502为Windows Server 2003,

0×0600 为 Windows Vista。

实际使用下图所示:

在vs2013下测试了一下,选中与否生成的项目结构是一样的。如果不选中预编译头,只保留mycpp1.cpp并作出相应修改,构建是可以通过的。如果是勾选了预编译头,只保留mycpp1.cpp是不可以编译通过的。正如最快回答中所说的,不选中,stdafx.h只是个普通的头文件,产生的文件结构一样只是采用了同一个模板而已。如果你仔细查看过工程的属性里有个选项就是预编译头,创建项目的时候预编译头的勾选与否,对应的就是这里这个选项,对应到编译阶段就是是否查找stdafx.h并且将它视为预编译头。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11912160.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存