我在看代码的时候看到了一段不懂的代码,是关于DIB的类定义的
int CDib::SaveBmp(LPCSTR filename)
{
BITMAPFILEHEADER hdr;
CFile file(filename,CFile::modeWrite|CFile::modeCreate);
//头文件
hdr.bfType=((WORD)'M'<<8)+'B';
LPBITMAPINFO pbi=GetBitmapInfo();
PBITMAPINFOHEADER pbih=(PBITMAPINFOHEADER)pbi;
hdr.bfSize=(DWORD)(sizeof(BITMAPFILEHEADER)+pbih->biSize+pbih->biClrUsed*sizeof(RGBQUAD)+pbih->biSizeImage);
hdr.bfReserved1=0;
hdr.bfReserved2=0;
hdr.bfOffBits=(DWORD)sizeof(BITMAPFILEHEADER)+pbih->biSize+pbih->biClrUsed*sizeof(RGBQUAD);
//写入头文件
file.Write((LPVOID)&hdr,sizeof(BITMAPFILEHEADER));
//写入信息头
file.Write((LPVOID)pbih,sizeof(BITMAPINFOHEADER)+pbih->biClrUsed*sizeof(RGBQUAD));
//写入数据
int nTotal=pbih->biSizeImage;
LPVOID lpBits=GetBits();
file.WriteHuge(lpBits,nTotal);
file.Close();
delete pbi;
return 1;
}
红色的地方看不怎么懂,<<的用法,我查了一下MSDN,好像也不是这样用的,高手帮忙解释一下,谢谢了!