#if !defined(AFX_MYSOCKET_H__62EF0485_0AA8_4DA1_8966_8B3ECA4A9E83__INCLUDED_)
#define AFX_MYSOCKET_H__62EF0485_0AA8_4DA1_8966_8B3ECA4A9E83__INCLUDED_#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000#include <winsock2.h>#ifdef USE_DLL
#define _DLL __declspec(dllexport)
#else
#define _DLL __declspec(dllimport)
#endifclass _DLL CMySocket  
{};#endif // !defined(AFX_MYSOCKET_H__62EF0485_0AA8_4DA1_8966_8B3ECA4A9E83__INCLUDED_)本程序的前两行有什么意义? 
AFX_MYSOCKET_H__62EF0485_0AA8_4DA1_8966_8B3ECA4A9E83__INCLUDED_)这个长串如何获得?附:3-5行语句又是什么意思?

解决方案 »

  1.   

    前面两会是MFC自动生成的一个宏,防止头文件被重复引用
    这样生成的宏是唯一的3-5行则是申明版本时字节对齐技术都是预编译的关键字
      

  2.   

    第一行的长串随机获得
    3---5行:
    MS:Microsoft(微软)的简写 C:MSC就是Microsoft出的C编译器。 VER:Version(版本)的简写。 编译器版本>1000的时候,这个文件只编译一次
      

  3.   

    #pragma onceSpecifies that the file, in which the pragma resides, will be included (opened) only once by the compiler in a build.
      

  4.   

    #ifndef _XXXX_H
    #define _XXXX_Hclass{
    };#endif /* _XXXX_H */
      

  5.   

    不用,在你项目中唯一就可以了一般你可以定义成和你头文件名一样的可以比如文件名为test.h,你可以
    #define TEST_H
      

  6.   

    难道 AFX_MYSOCKET_H__62EF0485_0AA8_4DA1_8966_8B3ECA4A9E83__INCLUDED_ 中间的62EF0485_0AA8_4DA1_8966_8B3ECA4A9E83 也是自己定义的唯一名称吗?
      

  7.   

    前2句应该是你的IDE自动生成的,其实就是为了防止头文件被重复引用
    你也可以自己定义,一般就像楼上说的,以自己的头文件为宏名称
    #ifndef XXX_H //XXX.h头文件
    #define XXX_H
    ...//在这里声明一些变量,类,方法等等,这样如果多个文件引入你的头文件时,但检索到XXX_H定义过了,那么这里的声明就不会再被重复声明了#endif