返回类型是LPBYTE *,其中包含0x00就认为结束了,不能正常返回了求教

解决方案 »

  1.   

    是LPBYTE还是LPBYTE * ?
    另外,“包含0x00就认为结束了”是什么意思?直接作为字符串处理了?
      

  2.   

    返回类型是LPBYTE *  ,
    程序是这样的
    for (i=0;i<720;i++)
     {
       tmp_string[i]=bRead[z-720+i];
     }
    CString s(tmp_string);
    *lpDataBuff= (LPBYTE)(LPCTSTR)s;
    要是有了0x00,他就认为是结束了,结果后面数据就没了.求教
      

  3.   

    你用CString来存放数据本身就不对,你就把bRead中的数据写到一个BYTE数据中,返回这个数组就行,同时添加一个返回值,代表数组的长度(不想添加返回值的话,就把返回数组中的前一个字节(也可以是多个字节)当成数据长度也可)。
      

  4.   

    比如:
    BYTE re[4 + 720];
    *((int*) re) = 720;
    for (i=0;i<720;i++)
     {
       re[4 + i]=bRead[z-720+i];
     }
    *lpDataBuff= re;前四字节为长度
    使用的时候行读出长度,读的方法和写的方法一样。
      

  5.   

    如果是字符串表示结束但是如果是char指针或者char数组,就不会了啊char *pChar = new char[10];
    for (int i=0; i<10; i++)
    {
    pChar[i] = 0x00;
    }
      

  6.   

    这与BYTE数组有什么分别呢?还不是需要一个长度。
      

  7.   

    VB中,dim a(720) as Byte