區別1:字符串的表達編程
void CMy123Dlg::OnBnClickedButton1()
{
// MessageBox("你好");//之前VC6.0寫法,如今用不了.老版本用的多字節字符集網絡
// MessageBox(L"你好");//L 是 unicode字符集,可移植性很差函數
// MessageBox(_T("你好"));//這3種方法同樣
// MessageBox(TEXT("你好"));
// MessageBox(_TEXT("你好"));指針
}
在VS2010中用哪一個比較好?_T(),至於說明介紹之類的資料,在網上有不少,因此沒有複製過來code
區別2:網絡編程的移植性:unicode
區別仍是有一丁點.就是字符上面.只要用_T(x)便可字符串
首先不得不說明:如今至關大的程序,都是使用多字節,並非一步就能改爲兼容的Unicode庫.在代碼中是要花費大量精力去修改,原本一個小小的 程序, 說不定修改就佔了一半的時間與精力.(會修改還好,不會修改,那真的是...)舉一個函數strcpy_s,在2者版本中兼容性就有問題.具體在MSDN 中查詢strcpy_s編譯器
因此,之後的程序中以大衆爲版本,使用多字節版--------->之後不作提示.默認爲多字節版,另外寫的程序默認爲靜態連接庫(考慮到程序移植問題)網絡編程
區別3:在類視圖中,VS2010刪除一個函數不是右鍵-->刪除就能刪除的,而是在類嚮導中--->刪除編譯
區別4:自定義函數格式發生了變化,如Vc6.0自定義的PostMessage就與VS2010格式不同,VS2010採用的指針格式
區別5:VS2010自帶了winsock2庫(第2版的庫),每次都不用加Ws2_32.lib這個了(推薦加上)
舉例:建立win32控制檯應用程序(帶MFC頭文件),每次就不用加
區別6:同一條語句.在VS2010編譯器中,C++不容許默認int類型存在.而在VC++6.0就能夠存在.語句以下:
ShutDownProc(BYTE* DATE);//函數聲明
CMyDlg::PutFileProc(BYTE *DATE)//函數使用 { SetDlgItemText(IDC_WORK_START,(char*)DATE); }