从MFC C ++应用程序中的资源加载JPEG文件

时间:2010-09-30 08:52:54

标签: c++ windows-7 mfc jpeg embedded-resource

以下代码在Windows XP下正常运行:

CImage image;

RECT destRect;

int nResource = 10;

CResourceStream stream(0, MAKEINTRESOURCE(nResource), _T("JPEG")); 

HRESULT hr = image.Load(&stream);

image.Draw(hDC, destRect);

但在Windows 7 image.Load上返回E_FAIL虽然创建CResourceStream正确地从资源中读取JPEG文件。

调试给出以下结果:

GdipCreateBitmapFromStream返回InvalidParameter

问题是什么?

JPEG是资源文件中的自定义类别。

2 个答案:

答案 0 :(得分:0)

我相信你应该使用“JPG”而不是“JPEG”。

答案 1 :(得分:0)

最后我使用了codeproject中的这个解决方案:

http://www.codeproject.com/KB/GDI-plus/cgdiplusbitmap.aspx

它是GDI +的一个薄包装器,能够在Windows 7下完美地加载JPEG文件(和其他文件)。