我的程序,一开始的编译错误如下:
Linking...
libcpmtd.lib(locale0.obj) : error LNK2005: "public: class std::locale::facet const * __thiscall std::locale::_Getfacet(unsigned int,bool)const " (?_Getfacet@locale@std@@QBEPBVfacet@12@I_N@Z) already defined in msvcprtd.lib(MSVCP60D.dll)
libcpmtd.lib(locale0.obj) : error LNK2005: "public: bool __thiscall std::locale::_Iscloc(void)const " (?_Iscloc@locale@std@@QBE_NXZ) already defined in msvcprtd.lib(MSVCP60D.dll)只列出部分,但是发先其原因是由于msvcprtd.lib,msvcrtd.lib,msvcrt.lib与现在的库的冲突引起的,于是在设定中忽略这3个库。发现运行良好,程序通过。但后来,加入了网络上很流行的自画菜单类BCMenu,结果又出错了,如下:BCMenu.obj : error LNK2001: unresolved external symbol __imp__wcscpy
BCMenu.obj : error LNK2001: unresolved external symbol __imp__wcscmp
Debug/BaseEye.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.显然,这是由于忽略那3个库,导致无法找到wcscpy与wcscmp函数,现在要么就不用BCMenu,但是实在不甘心,请高手指点,看有无别的方法,多谢了

解决方案 »

  1.   

    恩?VC自己的lib会有冲突的?
    没注意过,顶一下,等会试试
      

  2.   

    你为什么不试一试忽略前面的库,比如:libcpmtd.lib?
      

  3.   

    其实还是有办法的,就是加入两个BCMenu的成员函数,wcscpy和wcscmp,这样就不会去库中找这辆个函数了,不过,请问哪里可以找到wcscpy和wcscmp的原始代码?告诉我马上就揭帖,多谢了!
      

  4.   

    wcscpy和wcscmp的原始代码?自己写吧,也不是很难吧
      

  5.   

    wchar_t *wcscpy( wchar_t *strDestination, const wchar_t *strSource )
    {
    wchar_t *tmp = strDestination;   
    while((*strDestination++ = *strSource++) != '\0');   
    return tmp;   
    }
      

  6.   

    int wcscmp( const wchar_t *string1, const wchar_t *string2 )

    int i; 
    do{ 
    i = (int)*string1 -(int)*string2; 
    }while(*string1++ && *string2++ && (!i) ); 
    return i; 
    }