首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

VC++AppWizard自动生成的定义看不懂,该怎么解决

2012-04-05 
VC++AppWizard自动生成的定义看不懂VC++AppWizard自动生成的定义看不懂#if!defined(AFX_QUICKBBS_H__3DBE3

VC++AppWizard自动生成的定义看不懂
VC++AppWizard自动生成的定义看不懂
 
     
#if     !defined(AFX_QUICKBBS_H__3DBE3F97_1634_42FB_8864_103F6B5B3BC0__INCLUDED_)    
#define     AFX_QUICKBBS_H__3DBE3F97_1634_42FB_8864_103F6B5B3BC0__INCLUDED_    
 
#if     _MSC_VER     >     1000    
#pragma     once    
#endif     //     _MSC_VER     >     1000    
 
#ifndef     __AFXWIN_H__    
                      #error     include     'stdafx.h '     before     including     this     file     for     PCH    
#endif    
 
有谁看得懂吗?

[解决办法]
#if !defined(AFX_QUICKBBS_H__3DBE3F97_1634_42FB_8864_103F6B5B3BC0__INCLUDED_)
#define AFX_QUICKBBS_H__3DBE3F97_1634_42FB_8864_103F6B5B3BC0__INCLUDED_

..........
#endif

这个防止头文件件被重复包含而重定义的宏,之所以有一长串,是为了保证两个自动生成的宏不会重复.
逻辑是:如果宏没有定义,则这个文件还没有包含过. 然后定义宏.当文件被第二次包含时,宏已定义,中间的部分不会再进入预处理后的源文件.
[解决办法]
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

这个宏好象是为编译器版本而设置.
#pragma once 是在一个工程中多次包含这个文件(不是上面的在一个文件中多次包含一个文件),这个文件只会编译一次,可以提高编译效率.



[解决办法]
#ifndef __AFXWIN_H__
#error include 'stdafx.h ' before including this file for PCH
#endif

这个表示在编译这个文件时要见到宏__AFXWIN_H__ 已经定义,否则输出编译错误信息:在包含这个文件前要先包含 'stdafx.h ' PCH是预编译头文件的意思.


以上是个人的理解,可能有不妥之处.

热点排行