ANSI 都一起正常然后用UNICODE以后 (VS2005)出现好多 Error 16 error C2665: 'operator new' : none of the 5 overloads could convert all the argument types .cpp 67请问如何处理 谢谢

解决方案 »

  1.   

    e:\microsoft visual studio 8\vc\atlmfc\include\afx.h(1479): could be 'void *operator new(size_t,LPCSTR,int)'
            while trying to match the argument list '(size_t, TCHAR [1], long)'
      

  2.   

    代码里没怎么用 _T TCHAR 之类的吧 :)
      

  3.   

    都用了 而且构造函数不带参数的
    在NEW 一个出来的时候出问题了
      

  4.   

    void *operator new(size_t,LPCSTR,int)
    --------
    这里,LPCSTR是指向ASCII字符串的const指针类型
    或者查看是否有UNICODE版的。while trying to match the argument list '(size_t, TCHAR [1], long)'
    ---------------
    此处不能用TCHAR了,应为char。
    在UNICODE版下,TCHAR就是宽字节,与上面operator new要求的不符。
      

  5.   

    貌似别的地方也有NEW的操作,但是都正常 不过还是非常感谢您的回答
      

  6.   

    you just need to declare your class/structure above this code: #ifdef _DEBUG#define new DEBUG_NEW#endif
      

  7.   

    关键问题在 DLL是用UNICODE,我用ANSI的时候成了乱码,有办法解决给50分,其他顶的人拿10分
      

  8.   

    void *operator new(size_t,LPCSTR,int)while trying to match the argument list '(size_t, TCHAR [1], long)'
    =========================================================================

    (size_t,LPCSTR,int)
    去匹配
    (size_t, TCHAR [1], long)肯定不行。你new 时出现传的参数不对。
      

  9.   

    这个类的构造函数是不带参数的,
    现在ANSI的EXE已经可以调用UNICODE的DLL了,自己解决了剩下就是UNICODE 下这个NEW的问题了 谢谢了