H文件里是个简单的函数声明;
bool Global_Test(){....return true;}出错信息如下:
bool __cdecl Global_Test(void)" (?Global_Test@@YA_NXZ) already defined in Test_Setting.obj

解决方案 »

  1.   

    你那个头文件这样处理一下:#ifndef abcdefg
    #define abcdefg原头文件内容#endif这样就可以避免重复定义了
      

  2.   

    如果调用两次头文件的话,想当于定义两次 Global_Test() 函数,当然要出错了~~~
      

  3.   

    2ndboy(丢丢)说得对!Think in c++中说过,你可以看看头文件部分!
      

  4.   

    两次引用的同一个头文件,当然要出错了,加一个欲编译命令吧,#ifndef...
      

  5.   

    你的两个函数具有同样的定义,肯定会出错。用
    #ifndef XXXX_H
    #define XXXX_H
        content
    #endif
      

  6.   

    还是不行啊?老样子,我是这样用的:#ifndef abcdefg
    #define abcdefgbool Global_Test(){
    return false;
    }#endif
      

  7.   

    跟是否加预编译宏没有关系,原因在于
    bool Global_Test(){....return true;}
    包括了函数定义,该文件被两次包含,必然造成重复定义。应该把声明和定义分开。否则加预编译宏也不能解决问题。
      

  8.   

    所谓的那个预编译宏不是为了防止同一个头文件多次被不同的cpp包含的,而是为防止同一个头文件多次被同一个cpp包含。
      

  9.   

    TO:aileen_long(期待2002) 
    因为这个函数要在多个CPP文件里被调用,每次都写一遍太麻烦了,怎么才能解决?这样的调用一定要使用类吗?
      

  10.   


    #ifndef abcdefg
    #define abcdefg后面加上#pragma once就行了。这表明只编译一遍。
      

  11.   


    #ifndef abcdefg
    #define abcdefg后面加上#pragma once就行了。这表明只编译一遍。
    ===================================
    还是不行,错误依然~~~~~~
      

  12.   

    只把那个头文件加到STDAFX。H里也出这样的错误,怎么搞的?救命呀
      

  13.   

    难道你不能将函数在头文件里声明,在cpp文件里实现。在所有需要该函数的地方包括这个头文件吗?
      

  14.   

    我也试过在CPP里实现,但是老出global_test.cpp(32) : fatal error C1010: unexpected end of file while looking for precompiled header directive这种错误
      

  15.   

    在头文件里加一句 #pragma once
      

  16.   

    需要用到该函数的cpp只需要包含到其声明就行了,因为编译器只检查调用到的函数是否被声明过,至于函数体只要存在于当前工程中的任何一个cpp即可,链接器自己会去找的。
      

  17.   

    我也试过在CPP里实现,但是老出global_test.cpp(32) : fatal error C1010: unexpected end of file while looking for precompiled header directive这种错误如果是这个错的话,在你的cpp文件中包括stdafx.h头文件。
      

  18.   

    在.h文件中只要这样定义:
    bool Global_Test();在global_test.cpp(不用什么ifdef等等的东西)中实现该函数:bool Global_Test()
    {
    return true;
    }