我用的是 vc6.0 的视频教程,学 vc2005。遇到好多问题:
比如:在vc6.0 下的 char 在 vc2005 下用 TCHAR,
所有字符串都要加上 TEXT 宏
strlen 在vc2005 下用 lstrlen
还有 Unicode 及 Multcode 的问题
否决 ,乱码 ...... 之类的问题至于工具上的改变我就自己琢磨,但这语法上的改变拜托各位了.就像我上面,那样记得多少就列多少吧,谢谢!
比如:在vc6.0 下的 char 在 vc2005 下用 TCHAR,
所有字符串都要加上 TEXT 宏
strlen 在vc2005 下用 lstrlen
还有 Unicode 及 Multcode 的问题
否决 ,乱码 ...... 之类的问题至于工具上的改变我就自己琢磨,但这语法上的改变拜托各位了.就像我上面,那样记得多少就列多少吧,谢谢!
而VC8.0默认选择的字符集为unicode(双字节问题)所以,你把VC8.0的编译选项改为多字节的时候,就不会有你提到的
问题了。
项目-〉属性-〉C/C++-〉语言-〉将whar_t作为内置类型选择否
UP,我也正在从VC6.0->VS2005
这并不是所谓的变化吧,vc6照样可以用UNICODE啊
问:
那若在 Unicode 版本下进行文件操作,比如生成 .txt 文件。生成的该文件是 unicode 的还是 mulcode 的?
若用的是char *,则为multibyte。
#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;
}
char array[6]={'1',' ','2',' ','3'}; // 数字1和'1'不同
f1.write(array,5);
用editplus和ultraedit 32都看得到。
你把VC8.0的编译选项改为多字节的时候,就不会有你提到的问题了。
你上面所举的好象不是VC6->VC2005的变化。
char -> TCHAR 、字符串都要加上 TEXT 宏、strlen -> lstrlen,不是VC2005的新用法,VC6编程也这么用。可能你看的教程为了简化代码,没采用这种规范用法。
我也正在从VC6.0->VS2005
这就是想用默认的 unicode .在 unicode 下怎么解决?多列一些出来吧
这并不是所谓的变化吧,vc6照样可以用UNICODE啊
我觉得光就这个问题,看看unicode的资料
windows程序设计 以及 windows核心编程 都有1章来讲这个东西的
些问题在编译的时候都可以根据报错信息找出来的,没必要记这些东西