RT,

解决方案 »

  1.   

    没这个说法。TCHAR是根据编译环境的不同而自动改变类型,ANSI和Unicode的转换
      

  2.   

    但是,静态库是给别人引用的,用TCHAR的话,会不会造成混乱?
    比如头文件中有个结构用到TCHAR[30];此时编译环境中Character Set为Unicode,编译后lib里面为WCHAR.
    引用该静态库的工程,编译环境中Character Set为MBCS,包含该头文件,TCHAR[30]不是变成char[30]了?
    但是lib中的却是WCHAR?
      

  3.   

    关键在于自己必须清楚实际编译在静态库中的TCHAR到底是char还是wchar,如果是发布给别人,头文件最好别写TCHAR,否则人家搞不清楚到底应该是哪个。
      

  4.   

    要写支持UNICODE和ANSI的库,在头文件中这样定义:void FuncA(LPCSTR lpsz);
    void FuncW(LPCWSTR lpsz);#ifdef UNICODE
    #define Func FuncW
    #else
    #define Func FuncA
    #endif
      

  5.   

    向微软学习,同时提供 FuncA 和 FuncW 两种版本
      

  6.   

    谢谢,那么写程序的时候,什么时候该添加对ANSI的支持呢?
    现在都写TCHAR,但感觉似乎最后都是WCHAR...