#if !defined(AFX_DLGLOGIN_H__95B16295_A72E_4D90_8098_8C08AEB75026__INCLUDED_)
#define AFX_DLGLOGIN_H__95B16295_A72E_4D90_8098_8C08AEB75026__INCLUDED_#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

解决方案 »

  1.   

    #if !defined(AFX_DLGLOGIN_H__95B16295_A72E_4D90_8098_8C08AEB75026__INCLUDED_)
    #define AFX_DLGLOGIN ...
    这段就是说此文件只允许被加载一次, 与接下来的 #pragma once 意思相同, 只不过, #pragma once 对 _MSC_VER 有要求, 即可大于 1000 才能用这个宏.
      

  2.   


    _MSC_VER:
    Defines the major and minor versions of the compiler. For example, 1300 for Microsoft Visual C++ .NET. 1300 represents version 13 and no point release. This represents the fact that there have been a total of 13 releases of the compiler. 
    If you type cl /? at the command line, you will see the full version for the compiler you are using.
      

  3.   

    #if !defined(AFX_DLGLOGIN_H__95B16295_A72E_4D90_8098_8C08AEB75026__INCLUDED_)
    #define AFX_DLGLOGIN_H__95B16295_A72E_4D90_8098_8C08AEB75026__INCLUDED_#if _MSC_VER > 1000
    #pragma once
    #endif // _MSC_VER > 1000
    其实就是#if ... #endif的用法
    首先先判断有没有定义AFX..这个宏,没有的话,则定义它,然后再判断当前的编译器版本,如果大于1000的话(忘了1000是哪个版本),则使用#pragma once这条指令,这条指令的作用是让编译器只编译一次本文件即上面的两个都是为了防止头文件重复编译的``第一个是判断有没有定义某个宏,第二个是判断编译器的版本,看是否支持#pragma once指令