我看到有
#ifdef _DEBUGdo something#endif
或者
#ifdef _BETAtell user it's a beta edition#endif我用搜索来查找_DEBUG和_BETA
没有找到#define _DEBUG的字样,也就是说他没有用#define语句,那么他是怎么define的呢不过他的Project configurations有多个
除了DEBUG和Release之外,还有Beta release等等
怎么设置的
上面的那个#define问题和工程的设置有关吗?

解决方案 »

  1.   

    VC的DEBUG版本,在相应工程的Settings里有WIN32,_DEBUG,_WINDOWS,
      

  2.   

    VC6设置多个Project configurations:
    在dsp文件中前面加一行!MESSAGE "project name - Win32 Beta" (based on "Win32 (x86) Application")后面加上
    !ELSEIF  "$(CFG)" == "project name - Win32 Beta"
    # PROP BASE Use_MFC 0
    # PROP BASE Use_Debug_Libraries 1
    ...
      

  3.   

    #ifdef _DEBUG就是如果定义了该宏的话,
    是一个条件判断,当然可能出现有定义或者没有定义的情况.一般在工程属性中定义
      

  4.   

    to zhucde:
    你说这个我理解。
    我不理解的是:
    明明没有#define _DEBUG
    但是在
    #ifdef _DEBUGend if
    之间的语句会执行,当然,只在编译的debug版本中才执行。
    这就说明了_DEBUG已经在程序中define了
    但没有找到这个语句啊
    类似地,
    #ifdef _BETA
    MessagBox("dd");
    #endif
    编译其beta版本后该语句也会执行,MessageBox会弹出。但在其debug版本中不会弹出。
    怎么回事啊
    这个#define放到哪去了?
      

  5.   

    project->settings->C/C++/Precompiled Headers ?
    没有找到设置
    能够说得更清楚一点吗?该设置在什么地方?
    谢谢了
      

  6.   

    在project->settings->C/C++/Preprocessor中....
      

  7.   

    project->settings->C/C++->Preprocessor Definitions下面
      

  8.   

    project->settings->C/C++->Preprocessor Definitions:WIN32,_DEBUG,_WINDOWS,_AFXDLL,_MBCS