我想在VC中实现将二进制转换成字符串的函数,请各位指导,提示 我想在VC中实现将二进制转换成字符串的函数,请各位指导,提示如果您有相关的程序代码最好能借我参考一下。谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 但我要在VC中的EDIT BOX框中显示啊我用的是SetInputMode(1)以二进制读取啊。所以现在我在EDIT BOX中显示的是乱码啊 strtemp.Format("%c",bt); 我是这么写的。但依然显示的是乱码。。我是刚刚接触这个,所以用错的地方请大家指导啊 strtemp.Format("%x", bt); //bt是什么? 关于我说的要将二进制转成字符串。中的二进制我是这么理解的。不知道对不对啊。“SetInputMode(1)以二进制读取啊。”请看我的这个代码,这个是用二进制读取的啊。那么返回的就应该是二进制,对吧。但是我现在想将他在VC的 EDIT BOX框里显示,这样直接显示出来的是乱码。有人告诉我说这个EDIT BOX不能显示二进制的。所以我现在想将得来的二进制转换成字符串来显示啊。不知道我这么说,大家能明白我的意思么!!!虽然现在问题还没解决,但我真的谢谢大家啊。如果您还有什么好的方法请指教啊! 应该是strtemp.Format("%s",bt); strtemp.Format("%s",bt); 这个方法我试过了,但是不正确。谢谢!对与各位的建议我一定会尝试的,然后尽量及时将结果反馈回来供大家参考。 VARIANT var; COleSafeArray olesafearr; long len=0; CString str=""; BYTE buf[1024]; memset(buf,0,sizeof(buf)); if(m_ctrCom.GetCommEvent()==2) //事件值为2表示接收缓冲区内有字符 { //MessageBox(_T("读取数据事件"), _T("TRACE"), MB_OK);//add by ly 2006.9.7 var=this->m_ctrCom.GetInput(); //读缓冲区 olesafearr=var; len=olesafearr.GetOneDimSize(); //得到有效数据长度 str.Format("%d",len); // // AfxMessageBox(str); //by ly 2006.9.6 for(long i=0;i<len;i++) { olesafearr.GetElement(&i,&buf[i]); //转换为BYTE型的数组 } for(long j=0;j<len;j++) { BYTE b=*((char *)(&buf[j])); str.Format("%c",b); // AfxMessageBox(*ppp); //by ly 2003.9.6 this->m_strReceiveData+=str; } } UpdateData(0); 这个是我的部分代码。变量名有些和最开始我写的有些变化。请大家给些意见 请问CFormView类如何改成CScrollView类 使用ADO访问excel,连接时出错?刚装的XP3,是不是需要其它配置? CSocket receive如何判断来自哪个SOCKET对象的消息 按钮如何增加提示功能? SDI程序的中间的白色,如何换个默认颜色? 请问一个有名管道的连接问题 11月11日光棍节,郁闷,散分!!!(没GF的看) 如何在txt文件里保存和读取二维数组文件? 关于程序生成的问题 (菜鸟级问题)学VC++,数学要精辟吗?? 关于通过DLL与服务器进行socket通信的问题. 如何遍历目录,请高手指教,最好能给出代码
我用的是SetInputMode(1)以二进制读取啊。
所以现在我在EDIT BOX中显示的是乱码啊
我是这么写的。但依然显示的是乱码。。
我是刚刚接触这个,所以用错的地方请大家指导啊
“SetInputMode(1)以二进制读取啊。”
请看我的这个代码,这个是用二进制读取的啊。那么返回的就应该是二进制,对吧。
但是我现在想将他在VC的 EDIT BOX框里显示,这样直接显示出来的是乱码。
有人告诉我说这个EDIT BOX不能显示二进制的。所以我现在想将得来的二进制转换成字符串来显示啊。
不知道我这么说,大家能明白我的意思么!!!虽然现在问题还没解决,但我真的谢谢大家啊。
如果您还有什么好的方法请指教啊!
这个方法我试过了,但是不正确。谢谢!对与各位的建议我一定会尝试的,然后尽量及时将结果反馈回来供大家参考。
COleSafeArray olesafearr;
long len=0;
CString str="";
BYTE buf[1024];
memset(buf,0,sizeof(buf));
if(m_ctrCom.GetCommEvent()==2) //事件值为2表示接收缓冲区内有字符
{
//MessageBox(_T("读取数据事件"), _T("TRACE"), MB_OK);//add by ly 2006.9.7
var=this->m_ctrCom.GetInput(); //读缓冲区
olesafearr=var;
len=olesafearr.GetOneDimSize(); //得到有效数据长度
str.Format("%d",len); //
// AfxMessageBox(str); //by ly 2006.9.6
for(long i=0;i<len;i++)
{
olesafearr.GetElement(&i,&buf[i]); //转换为BYTE型的数组
}
for(long j=0;j<len;j++)
{
BYTE b=*((char *)(&buf[j]));
str.Format("%c",b);
// AfxMessageBox(*ppp); //by ly 2003.9.6
this->m_strReceiveData+=str;
} }
UpdateData(0);
这个是我的部分代码。变量名有些和最开始我写的有些变化。请大家给些意见