file.Open(ImageFile,CFile::modeRead);
fileSize=(DWORD)file.GetLength(); BYTE *buf=new BYTE[fileSize];
file.Read(buf,fileSize);
file.Close(); HBITMAP bmp;
BITMAPFILEHEADER *pbmfh;

pbmfh=(BITMAPFILEHEADER*)buf;
bmp=CreateDIBitmap(pDC->GetSafeHdc(),
(BITMAPINFOHEADER*)(pbmfh+1),
CBM_INIT,
(BYTE*)pbmfh+pbmfh->bfOffBits,
(BITMAPINFO*)(pbmfh+1),
DIB_RGB_COLORS);
BITMAPINFOHEADER *pbminfohead=(BITMAPINFOHEADER*)(pbmfh+1);
         pDC->CreateCompatibleDC(0);  //运行到这里出错 提示: user breakpoint called form code at 0x7c92120e pDC->SelectObject(bmp);

pDC->BitBlt(0,0,pbminfohead->biWidth,pbminfohead->biHeight,pDC,0,0,SRCCOPY);                 
请问 :为什么出错 
           如何改正呢
           有没有更好的读取图像并显示的方法