c++ stdafx.h、targetver.h文件
2015-08-29 15:45
330 查看
遇到问题,赶紧记录一下,免得过后忘了
如果预编译头会有stdafx.h、targetver.h文件。
stdafx.h标准系统包含文件的包含文件, 或是经常使用但不常更改的,特定于项目的包含文件。百度百科说是所谓头文件预编译,就是把一个工程(Project)中使用的一些MFC标准头文件(如Windows.H、Afxwin.H)预先编译,以后该工程编译时,不再编译这部分头文件,仅仅使用预编译的结果。这样可以加快编译速度,节省时间。
stdafx.h中没有函数库,只是定义了一些环境参数,使得编译出来的程序能在32位的操作系统环境下运行。
Windows和MFC的include文件都非常大,即使有一个快速的处理程序,编译程序也要花费相当长的时间来完成工作。由于每个.CPP文件都包含相同的include文件,为每个.CPP文件都重复处理这些文件就显得很傻了。
即:当我们使用AppWizard来自动生成某些项目的时候,系统会自动把所需要include的头文件在stdafx.h中先include一下,这样,我们只需要直接include这个stdafx.h文件即可.因为同一个项目中的不同源文件CPP都包含相同的include文件,这样,为每个.CPP文件都重复include这些文件就显得很傻了。当然如果你不用MFC的话就不用了。即:在每个.cpp文件中都include stdafx.h 就相当于包含了其他的如iostream.h等文件
targetver定义了程序运行需要的最低Windows版本,如果你要在旧版本的Windows(如非NT架构的Win98)上运行,除了代码部分还需要修改这个头文件。
targetver.cpp里的宏定义_WIN32_WINDOWS,_WIN32_WINNT,WINVER, _WIN32_IE 分别为
前三个宏其实都是Windows的版本宏,在Windows 95,98,Me这一分支的OS中,Windows的定义的版本宏是_WIN32_WINDOWS。与此同时,Windows重新开发了NT系列,且其编号从NT4.0开始,经过Windows 2000,XP, Server 2003,Vista,Server2008,Win7,Win8. 在这一分支中,Windows的定义的版本宏是_WIN32_WINNT。_WIN32_WINDOWS宏便被废弃了。
WINVER是_WIN32_WINDOWS或_WIN32_WINNT的别名。
第四个是Windows IE浏览器的版本宏。浏览器各个版本宏的值定义在sdkddkver.h中
各版本具体见/article/5109336.html
如果预编译头会有stdafx.h、targetver.h文件。
stdafx.h标准系统包含文件的包含文件, 或是经常使用但不常更改的,特定于项目的包含文件。百度百科说是所谓头文件预编译,就是把一个工程(Project)中使用的一些MFC标准头文件(如Windows.H、Afxwin.H)预先编译,以后该工程编译时,不再编译这部分头文件,仅仅使用预编译的结果。这样可以加快编译速度,节省时间。
stdafx.h中没有函数库,只是定义了一些环境参数,使得编译出来的程序能在32位的操作系统环境下运行。
Windows和MFC的include文件都非常大,即使有一个快速的处理程序,编译程序也要花费相当长的时间来完成工作。由于每个.CPP文件都包含相同的include文件,为每个.CPP文件都重复处理这些文件就显得很傻了。
即:当我们使用AppWizard来自动生成某些项目的时候,系统会自动把所需要include的头文件在stdafx.h中先include一下,这样,我们只需要直接include这个stdafx.h文件即可.因为同一个项目中的不同源文件CPP都包含相同的include文件,这样,为每个.CPP文件都重复include这些文件就显得很傻了。当然如果你不用MFC的话就不用了。即:在每个.cpp文件中都include stdafx.h 就相当于包含了其他的如iostream.h等文件
targetver定义了程序运行需要的最低Windows版本,如果你要在旧版本的Windows(如非NT架构的Win98)上运行,除了代码部分还需要修改这个头文件。
targetver.cpp里的宏定义_WIN32_WINDOWS,_WIN32_WINNT,WINVER, _WIN32_IE 分别为
前三个宏其实都是Windows的版本宏,在Windows 95,98,Me这一分支的OS中,Windows的定义的版本宏是_WIN32_WINDOWS。与此同时,Windows重新开发了NT系列,且其编号从NT4.0开始,经过Windows 2000,XP, Server 2003,Vista,Server2008,Win7,Win8. 在这一分支中,Windows的定义的版本宏是_WIN32_WINNT。_WIN32_WINDOWS宏便被废弃了。
WINVER是_WIN32_WINDOWS或_WIN32_WINNT的别名。
第四个是Windows IE浏览器的版本宏。浏览器各个版本宏的值定义在sdkddkver.h中
各版本具体见/article/5109336.html
相关文章推荐
- C++深拷贝与浅拷贝
- 文件重命名小程序(适用于unix系c++)
- C语言qsort函数用法
- 《IOS_C语言》结构体、结构体数组
- Kth Largest Element in an Array
- VS中C++对象的内存布局
- [leetcode]Valid Anagram C语言
- C++16个常用面试题
- C语言_为什么字符串可以赋值给字符指针变量,字符串的属性及存放位置
- c++ assert() 使用方法
- C++ vector用法
- 作业《IOS_C语言》函数分类、函数声明和定义、函数调用、形参实参、函数嵌套调用
- 【转载】高效排序——归并排序
- c++串口小结
- c++的声明与定义
- C++的头文件和实现文件分别写什么
- C语言基础(xcode)
- C++ sizeof 和strlen
- 【more effective c++读书笔记】【第3章】异常(2)
- 【more effective c++读书笔记】【第3章】异常(2)