本帖最后由 VisualEleven 于 2011-11-28 09:46:11 编辑

解决方案 »

  1.   

    CString str = "01 02 03 04 0A 0B 0C 0D";
    BYTE bTemp[18]={0};
    int i;
    for(i=0;i<8;i++)
    {
    sscanf( str.Mid( i * 3 ),"%x",&bTemp[i]);
    }  sscanf输入的是一个16进制数,%x就是表示输入一个16进制形式的整数,占用4个字节,所以当输入到0a的时候就占满了,输入0b的时候自然会出错,把bTemp加大就正确了。
      

  2.   

    CString str = "01 02 03 04 0A 0B 0C 0D";
        BYTE bTemp[8]={0};
    sscanf(str,"%x%x%x%x%x%x%x%x",&bTemp[0],&bTemp[1],&bTemp[2],&bTemp[3],&bTemp[4],&bTemp[5],&bTemp[6],&bTemp[7]);
      

  3.   

    也可以用CString::Tokenize()以空格来拆分字符串
      

  4.   

    我遇到过这样的问题。不过知道了问题也不知道怎么改。后来在release 模式下调程序就解决啦~~~~