我的程序是MFC做的一个简单的对话框,用了一些自己做的lib。
编译32位程序没有问题,但是编译64位时出现了下面的链接错误
error LNK2005: Polygon already defined in gdi32.lib(GDI32.dll)Polygon是自己做的某个库的一个函数。
我不明白32位的没有冲突,64位的为什么会冲突。是工程哪里没设置对吗?
c++dll

解决方案 »

  1.   


    单独编译64位的库是没有问题的,一切正常,
    编译exe程序就出了函数名冲突
      

  2.   


    不用改函数名,给你的函数加个namespace作用域,这样就可以避免了,应该是系统的库已经定义了一个Polygon,所以和你自己写冲突了。
      

  3.   


    Polygon是用c语言写的,好像加不了namespace
      

  4.   

    没影响吧...namespace MyFunction {你的Polygon函数}使用的时候MyFunction::Polygon就行了...
      

  5.   


    不行,编译不通过namespace MyFunction
    {
    extern INT Polygon();
    }error C2061: syntax error : identifier 'MyFunction'
    error C2059: syntax error : ';'
    error C2449: found '{' at file scope (missing function header?)
    error C2059: syntax error : '}'网上查了,c++能用,c不行