VC++6.0和VC++2010的区别

VC6.0和VS2010最大的区别在于默认的字符集,VC6.0默认的字符集为ANSI,而VS2010默认的字符集为UNICODE.

这就造成了,VC6和VS2010在处理字符问题上的不同。

    首先要说明的是,这种不同主要是编译器层面上的不同,为什么要把VC6使用的ANSI字符集。到了VS2010时就改为UINICODE呢。这主要是为了处理字符的方便性来做出更改的。而本身C++语言上的字符类型并没有改变的,比如char类型仍然为1个字节,字符常量默认的也是一个字符占用一个字节的。

   其实为了兼容VC6和VS2010,微软在操作系统的层面,加入了自己的一套规范,比如说用了一些自己定义的数据类型。如TCHAR 如果说在ANSI字符集下,就相当于char, 而如果是再UNICODE字符集下,就相当于wchar_t.

  而因为在VS2010中处理字符的函数,几乎都变成了UNICODE的形式,而本身字符串常量为char类型。微软的解决方案是。用_T(),TEXT(),_TEXT()宏,或者L##来将字符串常量改为UNICODE形式的。比如,在VC6中,CString 的Format函数接受ANSI字符,而在VS2010中,必须改为Format(_T("abc"))或者Format(TEXT("abc"));或者Format(L"abc")

;的形式将单个char字符,即用一个字节代表一个字符的形式。改为UNICODE字符,即两个字节代表一个字符。

   另外,VC的main函数可以为void main()形式,而VS2010中最好用int main()的形式。

你可能感兴趣的:(C++)