我在原来代码下(非unicode的),现在改成了unicode的,代码突然有302的错,我看了一下,基本上是char * CString 的字符串引起的错误,我就不知道,这样的转换过程,我要做什么修改才能支持Unicode? 而最终消除我的那302个错啊!

解决方案 »

  1.   

    把char全换成TCHAR
    所有的字符串用_T()宏
    比如
    char sz="aaa";
    改成
    TCHAR sz=_T("aaa");
      

  2.   

    如果用TCHAR表示unicode的话,要记得:
    #define UNICODE
    #define _UNICODE
      

  3.   

    微软提供一种通过预处理指令来实现 UNICODE。每当用 Visual C++ 创建新工程时,只要确
    否支持另外一种字符集,则 AppWizard 将会在头文件中插入预处理指令。这些指令告诉编译器程序想要
    何种字符集。这样在使用VC++提供的通用数据类型时,编译器将用相应的数据类型把通用数据类型替换成
    要支持的字符集。这样很容易将代码重新编译成支持其它字符集的程序。
    为了在 Visual C++ 6.0 中激活 UNICODE 标准,可以这样做:打开工程文件后,从主菜单中选择
    “Project | Settings”打开工程设置对话框 => 然后选择“C/C++”标签 => 在“Preprocessor
    definitions”编辑框中添加 UNICODE 或者 _UNICODE 预处理宏指令。
      

  4.   

    定义:
    #define UNICODE
    #define _UNICODE修改:
    1.把char换成TCHAR
    如:char ch[] = "xxx";改成:TCHAR ch[] =_T("xxx");2.修改字符串函数:
    如strlen改成_tcslen
    也可以改成lstrlen
      

  5.   

    谁来个总结一下:我这里先说一下:请大家补充:
    -:如何在vc6中进行unicode编译
    1.菜单Build–>Configurations–>Add,添加一个Unicode Debug。
    2.菜单Build–>Set Active Configuration,选择Win32 Unicode Debug。
    3.菜单Project–>Settings->C/C++属性页->Category中,选择Preprocessor,在Preprocessor definitions中添加 _UNICODE。
    4.菜单Project–>Settings->Link属性页->Category选中,选择Output,在Entry- point symbol中写入wWinMainCRTStartup。如不执行该步骤,会出现错误”unresolved external symbol _WinMain@16“。
    二:把char全换成TCHAR
    所有的字符串用_T()宏
    比如
    char sz="aaa";
    改成
    TCHAR sz=_T("aaa");
    2.修改字符串函数:
    如strlen改成_tcslen
    也可以改成lstrlen
    三:...