BYTE* pDIB = NULL;
(BITMAPFILEHEADER*)pDIB  请问这该如何理解
 
还有这个 
RGBQUAD* pRgbQuad = (RGBQUAD*)(pDIB + sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER));

解决方案 »

  1.   

    指针类型转换
    即按转换后的指针类型对指针的数据访问。
    BYTE *pBuf=NULL;//按BYTE访问pBuf指向的数据
    (int *)pBuf;//按int访问pBuf指向的数据
    (BITMAPFILEHEADER*)pBuf;//按BITMAPFILEHEADER结构访问pBuf指向的数据  
      

  2.   

    BYTE* pDIB = NULL; 
    (BITMAPFILEHEADER*)pDIB  请问这该如何理解 
    没什么不好理解的,指针指向的地址没有变,只是人为认为它指向的内存块是另外一种数据结构RGBQUAD* pRgbQuad = (RGBQUAD*)(pDIB + sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER));
    这个是将pDIB的指针进行偏移,加上BITMAPFILEHEADER和BITMAPINFOHEADER等2个数据结构的大小,然后地址重新赋给pRgbQuad