各位大侠帮帮忙啊!我写了个网络程序,抓取数据包,最后显示应用层的数据。
应用层显示于对话框中的CEdit控件中,定义了CString类型的m_appData与之关联。
udp_header* udpHdr=(udp_header*)(ip_hdr+ipHdrLen); //这是获取到的udp数据报的头部指针 char* app_data=(char*)(udpHdr+8); m_appData.Format(_T("%s"),app_data);
UpdateData(false);运行后,CEdit控件中输出的全是乱码!是不是跟Unicode有关?请指教!
应用层显示于对话框中的CEdit控件中,定义了CString类型的m_appData与之关联。
udp_header* udpHdr=(udp_header*)(ip_hdr+ipHdrLen); //这是获取到的udp数据报的头部指针 char* app_data=(char*)(udpHdr+8); m_appData.Format(_T("%s"),app_data);
UpdateData(false);运行后,CEdit控件中输出的全是乱码!是不是跟Unicode有关?请指教!
解决方案 »
- CHtmlView问题。OnNewWindow2弹出窗,关闭父窗口后,弹出的子窗口也跟着全部被关闭了。
- 一个句柄做函数参数传递的问题,大家帮忙啊
- 不知不知VS.NET中有没有类似于StringToFloat()之类的函数
- IHTMLDocument2::get_selection(IHTMLSelectionObject**)函数可以获得HTML文件当前选定的对象的指针,但不知如何得到对象的名称(ID)及属性
- 我不小心按了那些建,程序中空格處出現了很多向上的點, 每行開頭有^符號, 怎麼去掉
- 我想在半秒内接受键盘输入,过了半秒就不接受了,怎么用c语言实现?我很苯,麻烦具体点
- 谁有现成的开发文档?能给我一份作样本吧?谢谢!
- 程序运行不稳定,怎么调试?
- VC中怎么创建Excel表格?
- 请教各位高手如何在服务器和客户端注册和使用DCOM组件
- 祝贺公司通过CMMI level 3
- 俄罗斯方块中的若干问题
如果udpHdr 指针指向的Unicode编码的字节流,应该转换为多字节的
否则,就不能用 char* app_data=(char*)(udpHdr+8);
char* pszMultiByte; iSize = WideCharToMultiByte(CP_ACP, 0,(wchar_t*)(udpHdr+8) , -1, NULL, 0, NULL, NULL);
pszMultiByte = (char*)malloc((iSize+1));
WideCharToMultiByte(CP_ACP, 0, (wchar_t*)(udpHdr+8), -1, pszMultiByte, iSize, NULL, NULL);
m_appData.Format(_T("%s"),pszMultiByte);
UpdateData(false);
这样转换后,还是输出乱码,是不是要转化为多字节啊?
char* app_data=(char*)(udpHdr+8); 出现了错误,汗,请不要用指针加上一个数值,那会得到你指针指向的结构大小乘以数值后的地址去!
请参照:
//
struct TEMP
{char charStr[20];
};
//以下位于main程序当中
char charStr[]="JestForTest";
int ipHdrLen=4;
TEMP* udpHdr=(TEMP*)(charStr+ipHdrLen); //这是获取到的udp数据报的头部指针
char* app_data=(char*)(udpHdr); //不要加上数值
CString m_appData;
m_appData.Format("%s",app_data);
cout << (LPCTSTR)m_appData << endl;