最近在学习VC++,下载了VS2013,照着《Visual C++开发实战宝典》的第一个hello例程写了个例子,结果出现编辑框乱码的问题。晚上一直在折腾类型的转化,后来总结才明白了是ANSI和UNICODE的区别。老教程刚出的时候,这些控件接口都是ANSI的格式,而现在都统一成了UNICODE了。
void ChelloDlg::OnBnClickedOk()
{
CString csPlus; //定义字符串变量
CString csSummand;
m_PlusNumber.GetWindowText(csPlus); //获取编辑框控件中的文本
m_Summand.GetWindowText(csSummand);
int nPlus = _wtoi(csPlus);//atoi(csPlus.GetBuffer(0)); //将编辑框文本转换为整数
csPlus.ReleaseBuffer();
int nSummand = _wtoi(csSummand);//atoi(csSummand.GetBuffer(0));
csSummand.ReleaseBuffer();
int nRet = nPlus + nSummand; //进行加法运算
wchar_t chRet[10] = {0};//char chRet[128] = {0};
_itow_s(nRet, chRet, 10);//itoa(nRet, chRet, 10); //将结果转换为字符串
m_Result.SetWindowText(chRet);
// TODO: Add your control notification handler code here
//CDialogEx::OnOK();
}
Visual C++一定要注意ANSI和UNICODE的区别
原文:http://blog.csdn.net/sadshen/article/details/46405637