VS2013 C++ Unicode环境下 BYTE 数组转CString的方法

来源:互联网 发布:迅雷影音 mac 编辑:程序博客网 时间:2024/05/29 04:12

      用VC6.0编译成功的,在VS2013 Unicode环境下不成功。主要的问题是BYTE数组转CString的问题。网上搜了一下,也还不明白怎样转换,忽然自己试了一下,找到了一个最简单的方法。

Unicode环境下:CString 应该是wchar_t类型的。我定义的是BYTE类型(无符号单字节)。

直接使用如下的方法,一句代码搞定!


CString str = CString(s);


参考代码如下:


void CCrackMe_003Dlg::OnBnClickedOk(){// TODO:  在此添加控件通知处理程序代码UpdateData(TRUE);BYTE i, len;len = m_szUser.GetLength();UINT EDI = 0, EDX = 0, ECX = 0;BYTE s[9];CString strKey1 = _T("HZF-"), strKey2 = _T("-GFD");if (len != 8){MessageBox(_T("用户名的长度必须为:8位!"), _T("错误提示"), MB_OK | MB_ICONERROR);return;}for (i = 0; i<len; i++){EDI = m_szUser.GetAt(i);EDX = EDI;ECX = i + 1 + 0x5;EDX ^= ECX;EDX += EDI;EDX += 0xA;s[i] = EDX;}s[len] = 0;//数组末尾加上NULL 0x00CString str = CString(s);//直接转换成功m_szSerial = strKey1 + str + strKey2;UpdateData(FALSE);//CDialogEx::OnOK();}

环境:win7 64+VS2013 C++ Unicode编译成功。

如下是显示效果:中文也正常显示了,而不是乱码了。








0 0
原创粉丝点击