stdafx.h疑问。。。
//stdafx.h:includefileforstandardsystemincludefiles,//orprojectspecificincludefilesth...
// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently, but
// are changed infrequently
//
#if !defined(AFX_STDAFX_H__67A7CD59_0160_409D_8AA9_8E0CEEA6C9E3__INCLUDED_)
#define AFX_STDAFX_H__67A7CD59_0160_409D_8AA9_8E0CEEA6C9E3__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// Insert your headers here
#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
#include <windows.h>
// TODO: reference additional headers your program requires here
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_STDAFX_H__67A7CD59_0160_409D_8AA9_8E0CEEA6C9E3__INCLUDED_)
这段代码什么用的,解释一下,感激涕零。。。小弟我献出仅有的10分,,为求一解。。。 展开
// or project specific include files that are used frequently, but
// are changed infrequently
//
#if !defined(AFX_STDAFX_H__67A7CD59_0160_409D_8AA9_8E0CEEA6C9E3__INCLUDED_)
#define AFX_STDAFX_H__67A7CD59_0160_409D_8AA9_8E0CEEA6C9E3__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// Insert your headers here
#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
#include <windows.h>
// TODO: reference additional headers your program requires here
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_STDAFX_H__67A7CD59_0160_409D_8AA9_8E0CEEA6C9E3__INCLUDED_)
这段代码什么用的,解释一下,感激涕零。。。小弟我献出仅有的10分,,为求一解。。。 展开
4个回答
展开全部
// 这是 C/C++ 头文件一个惯用的方法,
// 为了防止头文件被多次包含(这会降低编译速度的),
// 整个并没有文件用
// #if !define A
// #define A
//
// 代码
//
// #endif
// 其中的 AFX_STDAFX_H__xxxx... 什么的, 是向导生成的
// 保存唯一的一个符号
//
#if !defined(AFX_STDAFX_H__67A7CD59_0160_409D_8AA9_8E0CEEA6C9E3__INCLUDED_)
#define AFX_STDAFX_H__67A7CD59_0160_409D_8AA9_8E0CEEA6C9E3__INCLUDED_
// _MSC_VER 是预定义的内部宏, 代码 VC++ (其实是 cl.exe) 的版本,
// 意思就是当编译器版本 > 1000 的时候, 才使用 #pragam once,
// 表明 #pragma once 在 版本 < 1000 的编译器上不被支持,
// 为移置性考虑的.
#if _MSC_VER > 1000
// 这个好像和上面的 #if...#define...#endif 的功能一样
#pragma once
#endif // _MSC_VER > 1000
// 定义 WIN32_LEAN_AND_MEAN 宏, 会去掉 windows.h 中一些
// 不太常用的定义, 以加快编译速度
// Insert your headers here
#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
#include <windows.h>
// TODO: reference additional headers your program requires here
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_STDAFX_H__67A7CD59_0160_409D_8AA9_8E0CEEA6C9E3__INCLUDED_)
这个是工程的预处理头文件, 同时还对应一个 stdafx.cpp, 使用预处理头文件能够加快编译的速度(当然是比较大的工程了), 它将一些基础性的, 很常用的, 而且不经常改动的头文件放到 stdafx.h 中包含, 并且工程设置中将预处理头打开, 之后仅在 stdafx.h 中包含的文件有变化或者 stdafx.h 本身有变化的时候才会重新编译, 这在一个大型的项目中对编译速度会有很大的提高!
基于以上所说的, stdafx.h 中放的是一些基础的, 常用的, 基本不被改动的东西, 所以默认生成的代码会将 windos.h/afxwin.h 包含进来, 你可以将你的工程中很少改动的基础头文件包含到 stdafx.h 中去.
// 为了防止头文件被多次包含(这会降低编译速度的),
// 整个并没有文件用
// #if !define A
// #define A
//
// 代码
//
// #endif
// 其中的 AFX_STDAFX_H__xxxx... 什么的, 是向导生成的
// 保存唯一的一个符号
//
#if !defined(AFX_STDAFX_H__67A7CD59_0160_409D_8AA9_8E0CEEA6C9E3__INCLUDED_)
#define AFX_STDAFX_H__67A7CD59_0160_409D_8AA9_8E0CEEA6C9E3__INCLUDED_
// _MSC_VER 是预定义的内部宏, 代码 VC++ (其实是 cl.exe) 的版本,
// 意思就是当编译器版本 > 1000 的时候, 才使用 #pragam once,
// 表明 #pragma once 在 版本 < 1000 的编译器上不被支持,
// 为移置性考虑的.
#if _MSC_VER > 1000
// 这个好像和上面的 #if...#define...#endif 的功能一样
#pragma once
#endif // _MSC_VER > 1000
// 定义 WIN32_LEAN_AND_MEAN 宏, 会去掉 windows.h 中一些
// 不太常用的定义, 以加快编译速度
// Insert your headers here
#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
#include <windows.h>
// TODO: reference additional headers your program requires here
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_STDAFX_H__67A7CD59_0160_409D_8AA9_8E0CEEA6C9E3__INCLUDED_)
这个是工程的预处理头文件, 同时还对应一个 stdafx.cpp, 使用预处理头文件能够加快编译的速度(当然是比较大的工程了), 它将一些基础性的, 很常用的, 而且不经常改动的头文件放到 stdafx.h 中包含, 并且工程设置中将预处理头打开, 之后仅在 stdafx.h 中包含的文件有变化或者 stdafx.h 本身有变化的时候才会重新编译, 这在一个大型的项目中对编译速度会有很大的提高!
基于以上所说的, stdafx.h 中放的是一些基础的, 常用的, 基本不被改动的东西, 所以默认生成的代码会将 windos.h/afxwin.h 包含进来, 你可以将你的工程中很少改动的基础头文件包含到 stdafx.h 中去.
展开全部
做初始化,定义一些必要的宏,包含一些必要的头文件,MFC默认是包含这个文件的,所以在这里尽量包含那些公用的文件,比如支持MFC的,或者其他的
****************************************************************
这就是微软为了不让自己的C代码和linux兼容而设计出来的垃圾stdafx.h头文件,本人对此深恶痛绝,因此每次编译都在编译选项里将 是否支持stdafx.h 设定为 NO
****************************************************************
这就是微软为了不让自己的C代码和linux兼容而设计出来的垃圾stdafx.h头文件,本人对此深恶痛绝,因此每次编译都在编译选项里将 是否支持stdafx.h 设定为 NO
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
哈哈,被微软忽悠了吧。
这就是微软为了不让自己的C代码和linux兼容而设计出来的垃圾stdafx.h头文件,本人对此深恶痛绝,因此每次编译都在编译选项里将 是否支持stdafx.h 设定为 NO
小知识:凡是afx开头的文件,都是和MFC有关的
这就是微软为了不让自己的C代码和linux兼容而设计出来的垃圾stdafx.h头文件,本人对此深恶痛绝,因此每次编译都在编译选项里将 是否支持stdafx.h 设定为 NO
小知识:凡是afx开头的文件,都是和MFC有关的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
做初始化,定义一些必要的宏,包含一些必要的头文件,MFC默认是包含这个文件的,所以在这里尽量包含那些公用的文件,比如支持MFC的,或者其他的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询