我用的是 vc6.0 的视频教程,学 vc2005。遇到好多问题:
比如:在vc6.0 下的 char  在 vc2005 下用 TCHAR,
      所有字符串都要加上 TEXT 宏
      strlen 在vc2005 下用 lstrlen
      还有 Unicode 及 Multcode  的问题
      否决 ,乱码 ...... 之类的问题至于工具上的改变我就自己琢磨,但这语法上的改变拜托各位了.就像我上面,那样记得多少就列多少吧,谢谢!

解决方案 »

  1.   

    说到底,lz这些问题就是一个问题引起的那就是VC6.0默认选用字符集为MBCS(多字节字符)
    而VC8.0默认选择的字符集为unicode(双字节问题)所以,你把VC8.0的编译选项改为多字节的时候,就不会有你提到的
    问题了。
      

  2.   

    一些代码在VC6.0 下能运行,在VC2005 下就报错,很多地方都是因为VC2005默认是Unicode编码,而且很多地方都要改函数。
      

  3.   

    项目-〉属性-〉常规-〉字符集-〉使用多字节字符集
    项目-〉属性-〉C/C++-〉语言-〉将whar_t作为内置类型选择否
      

  4.   

    你把VC8.0的编译选项改为多字节的时候,就不会有你提到的问题了。==========================================================================这就是想用默认的 unicode .在 unicode 下怎么解决?多列一些出来吧
      

  5.   

    你上面所举的好象不是VC6->VC2005的变化。char -> TCHAR 、字符串都要加上 TEXT 宏、strlen -> lstrlen,不是VC2005的新用法,VC6编程也这么用。可能你看的教程为了简化代码,没采用这种规范用法。
      

  6.   


    UP,我也正在从VC6.0->VS2005
      

  7.   

    这就是想用默认的 unicode .在 unicode 下怎么解决?多列一些出来吧
    这并不是所谓的变化吧,vc6照样可以用UNICODE啊
      

  8.   

    我觉得光就这个问题,看看unicode的资料windows程序设计 以及 windows核心编程 都有1章来讲这个东西的ps:这些问题在编译的时候都可以根据报错信息找出来的,没必要记这些东西
      

  9.   

    那若在 Unicode 版本下进行文件操作,比如生成 .txt 文件。生成的该文件是 unicode 的还是 mulcode 的?
      

  10.   

    分已加上。
    问:
    那若在 Unicode 版本下进行文件操作,比如生成 .txt 文件。生成的该文件是 unicode 的还是 mulcode 的?
      

  11.   

    如果你写txt文件时缓冲区用的是TCHAR *或WCHAR*,则生成的文本文件字符集为UNICODE;
    若用的是char *,则为multibyte。
      

  12.   

    呵呵!我就在等你这回答,麻烦老大试试下面的代码,然后打开 C 盘的文件看看就知道#include<fstream>
    #include<iostream>
    using namespace std;
    int main()
    {
        ofstream f1("c:\\data.txt");    char array[5]={1,' ',2,' ',3};
    f1.write(array,5);
    f1.close();return 0;
    }
      

  13.   

    上面的代码有问题
    char array[6]={'1',' ','2',' ','3'}; // 数字1和'1'不同
    f1.write(array,5);
      

  14.   

    我是故意用 整型的。在把int 转换成char 丢失高8位,即使只剩下低8位。那也有对应的字符,暂且就当所对应的字符是乱码,但那几个空格不应该是乱码吧,为什么在输出的文件看不到空格
      

  15.   

    估计是winxp记事本处理这类非法字符时出的问题。
    用editplus和ultraedit 32都看得到。
      

  16.   

    vc6中handle,hwnd,socket等都可以转换成int,vs2005不行
      

  17.   

    字符的问题啊,以后都用带unicode的就好了,学的时候就用
      

  18.   


    你把VC8.0的编译选项改为多字节的时候,就不会有你提到的问题了。
    你上面所举的好象不是VC6->VC2005的变化。
    char -> TCHAR 、字符串都要加上 TEXT 宏、strlen -> lstrlen,不是VC2005的新用法,VC6编程也这么用。可能你看的教程为了简化代码,没采用这种规范用法。
    我也正在从VC6.0->VS2005
    这就是想用默认的 unicode .在 unicode 下怎么解决?多列一些出来吧
    这并不是所谓的变化吧,vc6照样可以用UNICODE啊
    我觉得光就这个问题,看看unicode的资料
    windows程序设计 以及 windows核心编程 都有1章来讲这个东西的
    些问题在编译的时候都可以根据报错信息找出来的,没必要记这些东西