Загрузка файла JPEG из ресурсов в приложении MFC C++

Следующий код корректно работает в 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 — это пользовательская категория в файле ресурсов.


person demonplus    schedule 30.09.2010    source источник


Ответы (2)


Я считаю, что вы должны использовать «JPG», а не «JPEG».

person Goz    schedule 30.09.2010
comment
JPEG — это название пользовательской категории в ресурсах, оно не может влиять на создание растрового изображения из потока. Но в любом случае я попробовал ваш совет - не помогло. - person demonplus; 30.09.2010

В конце я использовал это решение от codeproject:

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

Это тонкая оболочка для GDI+, которая способна отлично загружать файлы JPEG (и другие) под Windows 7.

person demonplus    schedule 01.10.2010