一个简单的字符串转换问题,请各位帮忙看看怎么回事
我这儿有两个问题:
1这是一个自定义的消息处理函数
LRESULT CChatDlg::OnRecvData(WPARAM wParam,LPARAM lparam)
{
CString str = (LPCTSTR)(char*)lparam;//监视变量看到(char*)lparam 0x0105fd68 "127.0.0.1 说: d",但是转(LPCTSTR)(char*)lparam为这时显示的都是"㈱⸷⸰⸰‱뗋›d쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌dsaf챤쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌",这是怎么回事? ATL::CStringT<wchar_t,StrTraitMFC_DLL<wchar_t,ATL::ChTraitsCRT<wchar_t> > >
CString strTemp;
GetDlgItemText(IDC_EDIT_RECV,strTemp);
str += "\r\n";
str += strTemp;
SetDlgItemText(IDC_EDIT_RECV,str);
return 0;
}
问题2:我将一个CString的字符串如str1="haha"(Unicode类型),转换为字符数组就变为cstr[100],就成如下格式:
cstr[0] = 'h'
cstr[1] = '0'
cstr[2] = 'a'
cstr[3] = '0'
...
但是我是通过socket传输数据,这样穿过去读的时候只能读到第一个字符,这种情况改怎么处理和转换,请各位指教,谢谢