VC++6.0与VS2010的区别
区别1:字符串的表达
void CMy123Dlg::OnBnClickedButton1()
{
// MessageBox("你好");//以前VC6.0写法,现在用不了.老版本用的多字节字符集
// MessageBox(L"你好");//L 是 unicode字符集,可移植性不好
// MessageBox(_T("你好"));//这3种方法一样
// MessageBox(TEXT("你好"));
// MessageBox(_TEXT("你好"));
}
在VS2010中用哪个比较好?_T(),至于说明介绍之类的资料,在网上有很多,所以没有复制过来
区别2:网络编程的移植性:
区别还是有一丁点.就是字符上面.只要用_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);
}