gdi+ 的bitmap 无法加载图片
enzoo 2009-11-17 08:10:31
strPath 是一个CString类型的图片路径
Bitmap img(strPath);
Bitmap* pThumbnail = static_cast<Bitmap*>(img.GetThumbnailImage(100, 75, NULL, NULL));
pThumbnail->GetHBITMAP(Gdiplus::Color(0, 255, 255, 255), &hBmp);
上面代码运行时出现
Unhandled exception at 0x00f8a9b3 in mfcTester.exe: 0xC0000005: Access violation reading location 0x00000004.
在我单步调试的时候发现Bitmap img(strPath)根本就没有把图片加载成功,在static_cast后pThumbnail的值为0
我在别人的源代码里却可以正常运行和上面差不多的代码
// load the bitmap
strPath.Format( TEXT("%s\\%s"), m_strImageDir, *iter );
USES_CONVERSION;
Bitmap img( A2W(strPath) );
Bitmap* pThumbnail = static_cast<Bitmap*>(img.GetThumbnailImage(THUMBNAIL_WIDTH, THUMBNAIL_HEIGHT, NULL, NULL));
// attach the thumbnail bitmap handle to an CBitmap object
pThumbnail->GetHBITMAP(NULL, &hBmp);
pImage = new CBitmap();
pImage->Attach(hBmp);
请问这是为什么,上下两段代码没有什么区别吧,它么加载同一张图片,上面的失败了,下面的成功~~
下面的代码时候是在ansi下运行的,上面的是unicode