在vs2010中默认的项目属性中“字符集”使用的是“unicode字符集”。而在vc6中使用的则是“多字节字符集”。只要将vs项目属性的字符集改成“使用多字节字符集”,就可以了。
加上_T(""), 可以自适应unicode或多字节的编译环境改变.保证兼容性。
2. CMainFrame类和C...View类均继承自CWnd类
3. C...App类不是继承自CWnd类,所以没有MessageBox函数,但 可以用 AfxMessageBox("内容");
C...Doc类也不是继承自CWnd类,同样可用 AfxMessageBox("内容");
对一个菜单项,在View,Doc,MainFrame,App四个类中,同时增加响应函数的时候,响应的优先次序是:View 高于 Doc 高于 MainFrame 高于 App 类
4. string求长度时,英文字符按1加,中文字符和汉字按2加;
若想让英文字符,中文字符和汉字都按1加,可先将其转成cstring
string input = "1234 :一个测";//注意:(:前有个空格)
CString cstrInput(input.c_str());
int iSize = input.length();//13
int iLen = cstrInput.GetLength();//9
CString strRight = cstrInput.Right(2);//个测
CString strLeft = cstrInput.Left(6);//1234 :
因为 CString 其实是宽字符,因为CString直接赋值时要用_T("...");转换
本文介绍了Visual Studio 2010与VC6.0在字符集设置上的不同之处,解释了为何VS2010需要指定Unicode字符集,而VC6.0默认为多字节字符集。此外还提到了如何在VS2010中进行设置以兼容VC6.0的行为,并简要讨论了CWnd类派生的类以及消息框的使用。
439

被折叠的 条评论
为什么被折叠?



