我建了两个对话框add和tst5dlg,两个都要调用一个全局函数print,print编写如下,可是还是出现重定义的问题,各位谁出现过这个问题,注,被注释掉的是什么意思,不被注释,还是一样的问题。add.obj : error LNK2005: "void __cdecl print(class CString)" (?print@@YAXVCString@@@Z) already defined in tst5Dlg.obj//print.h
#if !defined(_print_h)
#define _print_h// #if _MSC_VER > 1000
// #pragma once
// #endifvoid print(CString mess)
{
AfxMessageBox(mess);
};
#endif

解决方案 »

  1.   

    换了个sxyprint,还是这个问题
      

  2.   

    不是其他的问题,很简单,头文件里尽量不要写函数的实现部分。你现在头文件print.h里声明void print(CString mess);然后在print.cpp里写上
    void print(CString mess)
    {
    AfxMessageBox(mess);
    }
    就可以了。
    要使用这个函数的话只需要包含引用print.h就好了
      

  3.   

    如果print
    单独定义在print.h中,那#include ,如果定义在其中的一个DIALOG中,则 声明为extern print;
      

  4.   

    果然是这样,先生真乃神人也,我想了好多天都没有明白;
    令:头文件还要加上#include“stdafx”