分享

MFC的CByteArray、CString类完成动态字节数组使用

 xinyz4104 2015-05-25

MFC的CByteArray、CString类完成动态字节数组使用

在C语言中,经常定义一个这样的数组:

  1. unsigned char buf[100] = {0};  
但这个数组的长度是固定的,不能动态变化。在MFC中,可以使用CByteArray、CString达到这个目的:

  1. //--------------------------------------------  
  2. //  使用CString 的对无符号字节的存取  
  3. //--------------------------------------------  
  4. // 写入  
  5. CString buf1;  
  6. buf1 += (unsigned char)0x01;  
  7. buf1 += (unsigned char)0x02;  
  8. buf1 += (unsigned char)0x10;  
  9. buf1 += (unsigned char)0xFF;  
  10.   
  11.   
  12. //读取  
  13. printf("%d\n", buf1.GetLength());  
  14. CString str;  
  15. CString str1;  
  16. for (int i=0; i<buf1.GetLength(); i++)  
  17. {  
  18.     unsigned char x = (unsigned char)buf1[i];  
  19.     str.Format("%02x ", x);  
  20.     str1 += str;  
  21. }  
  22. AfxMessageBox(str1);  
  23.   
  24.   
  25. //--------------------------------------------  
  26. // 使用CByteArray 对无符号字节的存取  
  27. //--------------------------------------------  
  28. //写入  
  29. CByteArray arry;  
  30. arry.Add(0x41);  
  31. arry.Add(0x00);  
  32. arry.Add(0xFF);  
  33. arry.Add(0x22);  
  34.   
  35. //读取  
  36. str1.Empty();  
  37. for (i=0; i<arry.GetSize(); i++)  
  38. {  
  39.     unsigned char x = (unsigned char)arry[i];  
  40.     str.Format("%02x ", x);  
  41.     str1 += str;  
  42. }  
  43. AfxMessageBox(str1);  

CByteArray用起来比较直观,不说了;使用CString时,不管是读取或者写入,一定注意使用(unsigned char)转型。这也算是CString的另外一个用法吧。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多