BYTE szSystemInfo[4096];
CString info;
如何将szSystemInfo转换成inf?

解决方案 »

  1.   

    把szSystemInfo最后一个有用字符后面的字节的值赋为0;
    然后info=szSystemInfo;
      

  2.   

    CString mid,info="";
    BYTE szSystemInfo[4096];for(int i=0;i<4096;i++)
    {
         mid.Format("%c",szSystemInfo[i]);//你若想转换成整形就是“%d”,以此类推;
        info+=mid;
    }
      

  3.   

    那你的szSystemInfo[4096];赋值了吗
      

  4.   

    把szSystemInfo最后一个有用字符后面的字节的值赋为0;
    然后info=szSystemInfo;
    比如:
    szSystemInfo[0]='a';
    szSystemInfo[1]='b';
    szSystemInfo[2]=0;
    info=szSystemInfo;
      

  5.   

    你赋了多少值,那个"for(int i=0;i<4096;i++)"的4096就应该是多少,例如:
    for(int i=0;i<300;i++)
    szSystemInfo[i]=49;
    的话你就将4096改成300才对啊。
      

  6.   

    你看明白我的意思没有,你得灵活点,你要是没给szSystemInfo[4096]赋值的话,你当然显示出来的是乱码了啊,你得给其赋值才行啊。你赋了多少值就灵活的改成多少啊,我给你举的例子只是在你的szSystemInfo[4096]全部有值得情况下。
      

  7.   

    szSystemInfo[4095] = '\0';info = (char*)szSystemInfo;
      

  8.   

    设一个中间变量LPSTR 使用内存copy函数 就可以实现memcpy();
      

  9.   

    void CXYZView::BYTEtoCString(BYTE *bStr,int Len,CString *sStr)
    {
    char cStr;
    *sStr="\0";
    for(int i=0;i<Len;i++)
    {
    if(bStr[i] >= 0 && bStr[i] <= 9)
    {
    bStr[i]='0'+bStr[i];
    }
    cStr=(char)bStr[i];
    *sStr=*sStr+cStr;
    }
    }