我的程序有四个对话框,分别表示为MainDlg(主对话框), ADlg,BDlg,CDlg都是用向导产生的
同时我加了一个文件 MyDefine.h用于存放全局的变量定义与函数定义,因为在各个对话框中都能用到所以在MainDlg.h, Adlg.h,BDlg.h,CDlg.h都引用了MyDefine.h, 又因为A,B,C都要在MainDlg中弹出来,所以在MainDlg.h中引用了Adlg.h,BDlg.h,CDlg.h。
原来这个程序没有错误(文件中己有其它的结构体和变量定义),但我在MyDefine.h中定义了一个函数后,就出现了编译错误,说这个函数在某一个.obj早已定义,但把这个函数前加上inline后,就没有错误了,去掉就还有。
在MyDefine.h里我加了防止头文件被重复引用的宏。
#ifndef  MYDEFINE_H
#define  MYDEFINE_H文件内容
#endif

解决方案 »

  1.   

    试一下,把三个头文件加到.cpp中去!
      

  2.   

    如果用MFC,建议将MyDefine.h加入stdafx.h中
    Adlg.h,BDlg.h,CDlg.h包含在MainDlg.cpp之中MainDlg.h之前
      

  3.   

    先Rebuild All实施MainDlg.h里不用include文件MyDefine.h
    因为已经在其他对话款头文件里包含了
      

  4.   

    重新生成,Rebuild All。
      

  5.   

    把该头文件放到stdafx.h,就应该没有问题了
      

  6.   

    换成在每个头文件开头加上:
    #pragma once