试试
#ifndef __XXXX_H__
#define __XXXX_H__...
#endif

解决方案 »

  1.   

    在每个头文件的最前面加上#pragma once,如果有必要的话可以在.CPP文件前面也加上.
      

  2.   

    kaitty(阿凯)  的方法我试过的,不行,头文件里的确是没有什么实现代码,就是一个结构和一些变量,错误信息:f:\include\img.h(5) : error C2011: 'IMG_TYPE' : 'enum' type redefinition
    f:\include\img.h(7) : error C2011: 'tag_img_bit_pos' : 'struct' type redefinition
    f:\include\img.h(15) : error C2011: 'tag_img_info' : 'struct' type redefinition
      

  3.   

    定义到:
    StdAfx.h
    试试。
      

  4.   

    //下面是我的一个头文件的定义,它被多个文件使用
    //其中一个文件包含如下语句:
    //#define IsQRS,//#include "isQRS.h"//头文件如下,文件名isQRS.h
    #ifdef IsQRS
     #define IsQRSEXTERN
    #else
     #define IsQRSEXTERN extern
    #endifstruct QRSDATA{
    int Address;
    short R_R;
    unsigned char Flag;
    unsigned char Reserved;
    };IsQRSEXTERN QRSDATA *QD;
      

  5.   

    谢谢wx_zzm() 以及其他几位热心的回答了我的疑问,现在我的问题已经解决了,
      

  6.   

    你这样使用代码
    IsQRSEXTERN QRSDATA *QD;
    问题很大吧?
    你这样做,根据你的宏来控制是否定义变量实例,我认为不妥。
    如果你的控制宏出现问题,那自然会连接错误。
    建议你把变量定义在cpp文件中而不是头文件。还有,根据你的编译错误,我猜是你的头文件里缺少这样的东西:
    #ifndef xxx
    #define xxx
    #endif
    否则,是不会出现什么重新定义错误的。