c++ stdafx.h、targetver.h文件

遇到问题,赶紧记录一下,免得过后忘了

如果预编译头会有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中

各版本具体见http://www.cnblogs.com/zhcncn/archive/2013/05/21/3091052.html

时间: 2024-08-28 21:37:35

c++ stdafx.h、targetver.h文件的相关文章

Visual Studio 2010中的stdafx.h和targetver.h两个头文件是有什么用?

来自百度~stdafx.h中没有函数库,只是定义了一些环境参数,使得编译出来的程序能在32位的操作系统环境下运行. Windows和MFC的include文件都非常大,即使有一个快速的处理程序,编译程序也要花费相当长的时间来完成工作.由于每个.CPP文件都包含相同的include文件,为每个.CPP文件都重复处理这些文件就显得很傻了. 为避免这种浪费,AppWizard和VisualC++编译程序一起进行工作,如下所示: ◎AppWizard建立了文件stdafx.h,该文件包含了所有当前工程文

stdafx.h、stdafx.cpp两个文件的作用

stdafx.h.stdafx.cpp是干什么用的?为什么我的每一个cpp文件都必须包含stdafx.h? 这两个文件用于建立一个预编译的头文件.PCH和一个预定义的类型文件STDAFX.OBJ. 由于MFC体系结构非常大,包含许多头文件,如果每次都编译的话比较费时.因此,我们把常用的MFC头文件都放在stdafx.h中,如afxwin.h.afxext.h.afxdisp.h.afxcmn.h等,然后让stdafx.cpp包含这个stdafx.h文件.这样,由于编译器可以识别哪些文件已经编译过

“fatal error: hdf5.h: 没有那个文件或目录”解决方法

問題一: Installing Caffe without CUDA: fatal error: cublas_v2.h No such file: 在Makefile.config中修改,將CPU_ONLY := 1打開. 問題二:“fatal error: hdf5.h: 没有那个文件或目录”解决方法 参考自http://blog.csdn.net/hongye000000/article/details/51043913 Step 1 在Makefile.config文件的第85行,添加/

[Objective-c 基础 - 2.5] .h和.m文件,点语法,成员变量作用域

A. 命令行编译和XCode编译 1.在存在多个.m源码实现文件的情况下,若根据需要引入.m文件,使用命令行仅仅编译主.m文件即可,但是XCode会同时编译全部.m文件,会发生编译错误(重复定义全局变量或函数) 解决方案: 使用.h和.m文件,分开声明和定义 B.XCode功能 1.自动生成.h和.m 2.保存.引用快捷代码块 3.方法索引注释 #pragma mark 方法的说明 #pragma mark - 方法的说明 加入分组线 4.链接错误查看,使用左上角的感叹号logo C.点语法 实

C语言中.h和.c文件解析

用Keil软件看别人的工程的时候,看到工程里有.h文件和.c文件,比较纳闷,因此收集资料解开心中疑惑. 1.首先是用Keil软件来看工程的,所以工程中所看到的.h和.c文件肯定是跟Keil软件(编译器)有关. 1.1.编译器的工作过程: 1.1.1.预处理阶段.主要是处理“#include”.“#define”."#ifdef...#endif"."#ifndef...#endif"等语句. 1.1.2.词法与语法分析阶段.(分析c语言的语法) 1.1.3.编译阶段

oc 与 swift 之间的桥接文件 (ProjectNmae-Bridging-Header.h) (ProjectNmae-Swift.h)

oc 与 Swift 是2用不同的语言, oc代码只能写带oc文件里, Swift代码只能写在Swift文件里, 虽然2者不同语言, 但却能互相调用, 不过需要进行一下桥接, 就是下面的2个文件 (ProjectNmae-Bridging-Header.h) Swift文件要调用oc代码的时候 你会发现你无法引用oc.h文件, 所以就要用到这个文件, 对oc文件进行桥接, 把一些oc.h文件在这里引用进去, 然后你就可以在Swift文件里操作oc代码 (ProjectNmae-Swift.h)

如何在VC6.0下用pthread.h这个头文件

如何在VC6.0下用pthread.h这个头文件 1.下载PTHREAD的WINDOWS开发包 pthreads-w32-2-4-0-release.exe(任何一个版本均可) http://sourceware.org/pthreads-win32/,解压到一个目录. 2.找到include和lib文件夹,下面分别把它们添加到VC++6.0的头文件路径和静态链接库路径下面: a).Tools->Options,选择Directory页面,然后在Show directories for:中选择I

将mp3文件数据转换成.h的头文件的音频数据

使用mp3文件数据转换成.h的头文件的工具 bin2h_v1.01.zip 使用bin2h工具 https://code.google.com/p/bin2h/wiki/bin2h 将bin2h_v1.01.zip解压到bin2h文件夹中 ,输入命令: >bin2h 小苹果.mp3 xiaopingguo.h 生成xiaopingguo.h的头文件,里面是纯pcm的音频数据 版权声明:本文为博主原创文章,未经博主允许不得转载.

xcode中的.h和.m文件分别是什么意思?各有什么用?

.h 表示头文件,用来声明各种成员变量,方法,属性之类的.在import的时候用头文件. .m 主要用来实现.h 里声明的方法.举个例子,如果要写一个方法,你要在.h里先声明: - (void)myMethod ; 然后在.m 里具体实现: - (void) myMethod{ NSLog(@"This is my new method"); }