这个是一个回调函数:ShowStream(const BITMAPINFO * pInfo, const BYTE * pBits) 我应该怎么办才能把pInfo指向的的BITMAPINFO结构的内容传给另外的一个BITMAPINFO结构体 m_InInfo呢?
请各位老师们多多指点,学生感激不尽!初学这方面的知识,请多关照!

解决方案 »

  1.   

    memcpy(pInfo,&m_InInfo,sizeof (BITMAPINFO ) );
      

  2.   

    BITMAPINFO是变长结构体,是不能这样简单复制的,需要根据里面的bmiHeader中的biBitCount、biCompression和biClrUsed来确定调色板入口数。具体一两句话说不清,楼主还是自己去看看MSDN中关于Bitmap的说明吧,尤其是BITMAPINFOHEADER的内容。
      

  3.   

    主要是调色板的问题。BITMAPINFO结构中的调色板的长度有可能是0.
      

  4.   

    参考以下代码(八位图像),这里是BITMAPINFO数据头的对拷,除头以外的数据可以用memcpy。
    BITMAPINFOHEADER bi;
    bi.biSize=pInfo->biSize;
    bi.biWidth=pInfo->biWidth;
        bi.biHeight=pInfo->biHeight;
        bi.biPlanes=pInfo->biPlanes;
    bi.biBitCount=8;
    bi.biCompression=BI_RGB;
    bi.biSizeImage=0;
    bi.biXPelsPerMeter=pInfo->biXPelsPerMeter;
        bi.biYPelsPerMeter=pInfo->biYPelsPerMeter;
        bi.biClrUsed=0;
        bi.biClrImportant=0;