lia结构.cpp 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #include <stdio.h>
  2. int main(int argc, char *argv[])
  3. {
  4. printf("Hello, world\n");
  5. return 0;
  6. }
  7. typedef struct tagresdata2
  8. {
  9. BOOL bHasBk; //
  10. int nPicCount; //
  11. int nPicCount2; //
  12. DWORD nPicBmpCount[50]; // 为何设置魔数50?
  13. CRect rect[50]; // 为何设置魔数50?
  14. }RESDATA2;
  15. BYTE *pData = NULL;
  16. DWORD dwCount = 0;
  17. CStringArray AryRect;
  18. // 1.头部,获取图元个数;
  19. memcpy(&dwCount, pData, sizeof(DWORD));
  20. // 2.移动sizeof(DWORD)个字节,获取图元实际数据;
  21. pData += sizeof(DWORD);
  22. BYTE *pRealData = new BYTE[dwCount];
  23. memcpy(pRealData, pData, dwCount);
  24. // 将数据载入AryRect中;
  25. CMemFile memfile;
  26. memfile.Attach(pRealData, dwCount);
  27. CArchive ar(&memfile, CArchive::load);
  28. AryRect.Serialze(ar);
  29. ar.Close();
  30. memfile.Detach();
  31. if ( pRealData )
  32. {
  33. delete []pRealData;
  34. }
  35. // 3.移动dwCount个字节;
  36. RESDATA2 tagResData;
  37. pData += dwCount;
  38. memcpy(&tagResData, pData, sizeof(RESDATA2));
  39. // 4.移到sizeof(RESDATA2)个字节;
  40. pData += sizeof(RESDATA2);
  41. if ( tagResData.bHasBk )
  42. {// bHasBk一般都为false;
  43. DWORD dwleng = 0;
  44. BYTE *pSaveBk = NULL;
  45. }