一个WinMain类型的程序,有7个文件:
A00.h
B01.h   B01.cpp
B02.h   B02.cpp
B03.h   B03.cpp
在A00.h里面定义了一些公共的变量,现在的问题是我如果在B01.h,B02.h,B03.h里
都加上#include "A00.h"的话,编译成功但在link的时候告诉我定义重复。如果不include的话,又告诉我没有定义变量,我该怎么办?

解决方案 »

  1.   

    变量一定不要在头文件中定义。
    您可以在一个.cpp文件中定义,然后在其他文件中用extern声明。
      

  2.   

    // TestVectorView.h : interface of the CTestVectorView class
    //
    /////////////////////////////////////////////////////////////////////////////
    #if !defined(AFX_TESTVECTORVIEW_H__D417212C_015C_4ED0_82A6_C3324BB4B48A__INCLUDED_)
    #define AFX_TESTVECTORVIEW_H__D417212C_015C_4ED0_82A6_C3324BB4B48A__INCLUDED_#if _MSC_VER > 1000
    #pragma once
    #endif // _MSC_VER > 1000.....#endif 
      

  3.   

    to zzh5335(非程序员):要求在头文件里,没有办法呀
    to zfive5(醉马不肖):按照你说的添加上了,但是还是同样的错误
      

  4.   

    我把.cpp文件换成.c的后缀名就通过了!为什么??
      

  5.   

    .h文件的代码前:#ifden AAAA
    #define AAAA.h文件的结尾处
    #endif可以避免这个.h文件的内容重复include
      

  6.   

    http://expert.csdn.net/Expert/topic/1648/1648186.xml?temp=.3155634
      

  7.   

    zfive5(醉马不肖)  is right
      

  8.   

    在A00.H中使用:
    #ifndef _A00_H
    #def _A00_H
    ;
    ;
    ;
    #endif
    就可以了
      

  9.   

    to ruihuahan(飞不起来的笨鸟) ,okli(东方不BUG) 
    你们说的方法我都试了,不好用,我觉得很奇怪,避免重复定义
    因该就是用这个方法呀,可是为什么没有效呢?是不是有什么设定
    或是要求呢?
      

  10.   

    在VC6.0中,全局变量是不可以定义在头文件中的,各种理论上可行的方法都会失败的.
    我认为只能定义在.CPP文件中,然后用extern声明.哪位高手能给出一个将全局变量定义在头文件中而不出错的例子(VC6.0),小弟将无比佩服.
      

  11.   

    add "A00.h"in "stdafx.h"only
      

  12.   

    to chenweihello(呼噜噜~~~~~~~~~~):
    试了一下,还是不好用:(
      

  13.   

    ????????????????
    不会吧?
    这样都还不行????????????quote:zfive5(醉马不肖) ( ) 信誉:100  2003-06-11 09:57:00  得分:0 
    // TestVectorView.h : interface of the CTestVectorView class
    //
    /////////////////////////////////////////////////////////////////////////////
    #if !defined(AFX_TESTVECTORVIEW_H__D417212C_015C_4ED0_82A6_C3324BB4B48A__INCLUDED_)
    #define AFX_TESTVECTORVIEW_H__D417212C_015C_4ED0_82A6_C3324BB4B48A__INCLUDED_#if _MSC_VER > 1000
    #pragma once
    #endif // _MSC_VER > 1000.....#endif   
     
      

  14.   


    在每个头文件都加入预编译
    #ifndef  ****
    #define &&&&&
    #endif
    这样可以防止重复编译!