有什么好的办法可以将一个字节数组转换为字符串,用AfxMessageBox显示吗?在MFC或SDK中有这样的函数吗?或是给我一个例子代码。谢谢

解决方案 »

  1.   

    利用for循环吧,我想应该没什么好方法把
      

  2.   

    void main()
    {
    BYTE arr[] = {'a','b','c','\0'};
    char *p = (char *)arr; cout<<p<<endl;
    }
      

  3.   

    不知道你是不是这个意思,那你只要
    MessageBox(p);就可以了
    void main()
    {
    BYTE arr[] = {'a','b','c','\0'};
    char *p = (char *)arr; cout<<p<<endl;
    AfxMessageBox(p,0,0);
    }
      

  4.   

    to  mahongxi:
    可是我的字节数组中定义的不是字符而是16进制码,那要怎样用AfxMessageBox()显示呢?用你上边的方法好象只能显示字符吧!
    帮我想想有没有好的办法?或者换句话说我要将一段内存里的数据显示出来。
      

  5.   

    #include "stdlib.h"
    itoa(i,temp,10);///将i转换为字符串放入temp中,最后一个数字表示十进制
    itoa(i,temp,2); ///按二进制方式转换
    进制的范围只能是2-36之间,你的字符串是用什么方式来表示就用相对应的进制。
      

  6.   

    to : lblyy76
    可i 是一个整型,而不是一个整型指针?
      

  7.   

    这类问题最容易发生误解,就是俗语的"鸡同鸭讲".楼主举个例子,然后大家再回答吧!
    如:
    BYTE bMyByte[]={ ........}
    应该打印出
    "xxxxxxx"
      

  8.   

    哈哈,鸡先讲了BYTE updata[]={0xFF,0x01,0x00,0x04,0x2F,0x00,0x34};
    我想用AfxMessageBox(函数变换 updata)显示出FF,1,0,4,2F,0,34。请指教!谢
      

  9.   

    如果是单字节的,如ANSI编码的话,直接用MessageBox就可以了
    如果是双字节的,例如wchar的,那么可以用SDK函数MultiByteToWideChar转一下
    如果是其他的编码,那么自己写函数转吧^_^
      

  10.   

    CString szA="",szB="";
    for(int i=0;i<數組個數;i++)
    {
      szB.Format(_T("%x"),updata[i]);
      if(i!=數組個數-1)  szB+=",";
      else szB+=".";   //:))
      szA+=szB;
    }
    AfxMessageBox(szA);
      

  11.   

    to : YP2002CN(老婆我不敢了,老婆我愛你) 谢!
    我爱老婆,可我没有:)
      

  12.   

    YP2002正确。我的方法是:
    BYTE updata[]={0xFF,0x01,0x00,0x04,0x2F,0x00,0x34};
    char* szMsg=new char [sizeof(update)/sizeof(BYTE)*2+1]
    int j=0;
    for (int i=0;i<sizeof(update)/sizeof(BYTE);i++)
      j+=sprintf(szMsg+j,"%X,",update[i]);szMsg[j-1]='.'
    MessageBox(NULL,szMsg,"Title",MB_OK);
    delete []szMsg;仅供参考,出错勿怪。