BITMAP bm;
CBitmap *m_pBmp;
CDC dcMem;
LPCTSTR bitmappath="E:\EveryThing\2.bmp";
HBITMAP m_hBmp = (HBITMAP)::LoadImage(0,bitmappath,IMAGE_BITMAP,0,0,LR_LOADFROMFILE | LR_CREATEDIBSECTION | LR_DEFAULTSIZE);
//_ASSERT(m_hBmp!=NULL);
m_pBmp = CBitmap::FromHandle(m_hBmp);
VERIFY(m_pBmp->GetObject(sizeof(bm),(LPVOID)&bm));
dcMem.CreateCompatibleDC(&dc);
CBitmap *pOldBMP=(CBitmap *)dcMem.SelectObject(m_pBmp);
BitBlt(dc.m_hDC,10, 10,bm.bmWidth,bm.bmHeight,dcMem.m_hDC,0,0,SRCCOPY);
dcMem.SelectObject(pOldBMP);用这段代码显示图片,编译能通过,但运行时老是提示读内存出错!问题主要在这句上 VERIFY(m_pBmp->GetObject(sizeof(bm),(LPVOID)&bm));
请问怎么解决!
CBitmap *m_pBmp;
CDC dcMem;
LPCTSTR bitmappath="E:\EveryThing\2.bmp";
HBITMAP m_hBmp = (HBITMAP)::LoadImage(0,bitmappath,IMAGE_BITMAP,0,0,LR_LOADFROMFILE | LR_CREATEDIBSECTION | LR_DEFAULTSIZE);
//_ASSERT(m_hBmp!=NULL);
m_pBmp = CBitmap::FromHandle(m_hBmp);
VERIFY(m_pBmp->GetObject(sizeof(bm),(LPVOID)&bm));
dcMem.CreateCompatibleDC(&dc);
CBitmap *pOldBMP=(CBitmap *)dcMem.SelectObject(m_pBmp);
BitBlt(dc.m_hDC,10, 10,bm.bmWidth,bm.bmHeight,dcMem.m_hDC,0,0,SRCCOPY);
dcMem.SelectObject(pOldBMP);用这段代码显示图片,编译能通过,但运行时老是提示读内存出错!问题主要在这句上 VERIFY(m_pBmp->GetObject(sizeof(bm),(LPVOID)&bm));
请问怎么解决!
另外,程序中表示路径应该这样:
LPCTSTR bitmappath="E:\\EveryThing\\2.bmp";