怎样避免头文件被两次编译?
下面的问题怎样解决:我建了两个类CSaron和CWriteIC,还建了个头文件 userfun.h。在userfun头文件中建了一个函数:OpenCom(int)。我在类CSaron中引用了头文件 userfun.h。并且调用了函数OpenCom(int)。编译时没有问题。当我在类CWriteIC中引用头文件userfun.h并且调用了函数OpenCom(int)。编译时出现下列错误:
WriteIC.obj : error LNK2005: "bool __cdecl OpenCom(int)" (?OpenCom@@YA_NH@Z) already defined in SaronDlg.obj当我把在类CWriteIC中引用头文件userfun去掉,编译时提示:函数OpenCom(int)没有声明。请问我怎样才能在类CWriteIC中调用头文件userfun.h中的函数OpenCom(int)。
谢谢各位。很急!!!!!!!!

解决方案 »

  1.   

    #if !defined(__USER_DEF_H__) //__USER_DEF_H__随便定义,也可以由系统生成
    #define __USER_DEF_H__#if _MSC_VER > 1000
    #pragma once
    #endif // _MSC_VER > 1000...
    //加你自己的定义#endif
      

  2.   

    或者你用VC的Class View里New Class生成一个类,看看那个类的头文件也就明白了
      

  3.   

    头文件结构#ifndef__USERFUN_H__
    #define__USERFUN_H__
    你的头文件内容
    #endif //__USERFUN_H__这个#ifdef预处理命令确保单一文件的包含
      

  4.   

    在OpenCom函数定义前面加inline应该可以这是一个懒方法,绝不是一个好方法,最好还是把定义移回cpp里面
      

  5.   

    ===============>这个
    头文件结构#ifndef__USERFUN_H__
    #define__USERFUN_H__
    你的头文件内容
    #endif //__USERFUN_H__这个#ifdef预处理命令确保单一文件的包含
      

  6.   

    #pragma once
    或者#ifndef__USERFUN_H__
    #define__USERFUN_H__
    你的头文件内容
    #endif //__USERFUN_H__