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()的形式。
?
總結
以上是生活随笔為你收集整理的VC++6.0和VC++2010的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 格式化输出中的%s和%S的区别
- 下一篇: Vs2010与VC的区别