问题是这样的:想在MFC中建立一个属于自己的常用的功能类,他没有从MFC类派生。我看到过一些这样的实例,但当我自己创建时却搞不懂创建类时在*.H;*.CPP文件中的一些编译指令的具体含义;例如:
#ifndef __DEFINE_H__
#define __DEFINE_H__#define WM_NOTIFYICON WM_USER + 100#define DLLEXPORT _declspec(dllexport) 
extern "C" DLLEXPORT double AreaTrigle( double a,double b,double c);//int _declspec(dllimport) TestBox();#endif其中的#ifndef __DEFINE_H__
      #define __DEFINE_H__
以及:#endif
等等吧,他们是?

解决方案 »

  1.   

    由于嵌套包含文件的原因,一个头文件可能会被多次包含在一个源文件中.条件指示符可防止这种头文件的重复处理.
    条件指示符#ifndef检查 __DEFINE_H__在前面是否已经被定义.这里__DEFINE_H__是一个预编译常量.如果__DEFINE_H__在前面没有被定义,则条件指示符的值为真,于是从#inndef到#endif之间的所有语句都被包含进来进行处理.相反,如果#inndef指示符的值为假,则它与#endif指示符之间的行将被忽略.
      

  2.   

    就是上面的解释,其中_DEFINE_H就代表define.h文件。
    #ifndef __DEFINE_H__
    #define __DEFINE_H__
    #endif
    保证唯一编译
      

  3.   

    就是上面的解释,其中_DEFINE_H就代表define.h文件。
    #ifndef __DEFINE_H__
    #define __DEFINE_H__
    #endif
    保证唯一编译
    有的时候你会发现
    #if !defined(AFX_SHUTDOWNDLG_H__41A6C5F8_F222_4D4F_9C05_79870DBFAD1A__INCLUDED_)
    #define AFX_SHUTDOWNDLG_H__41A6C5F8_F222_4D4F_9C05_79870DBFAD1A__INCLUDED_
    AFX_SHUTDOWNDLG_H之后的东西那时vc自动添加的(为了保证头文件的唯一性)