Недавно я использовал WIC для разбора GIF. Код был написан, и он отлично работает на win10 и win7, но не работает на WinXP. Я долго исключал это и, наконец, нашел причину в этой строке кода:
// pBitmapFrameDecode is an IWICBitmapFrameDecode
hr = pBitmapFrameDecode->GetMetadataQueryReader(&pFrameMetadataQueryReader);
if (hr == WINCODEC_ERR_UNSUPPORTEDOPERATION) MessageBoxA(NULL, "WINCODEC_ERR_UNSUPPORTEDOPERATION", "Error!", MB_OK);
В этой строке кода ошибка GetMetadataQueryReader
приводит к ошибке GetMetadataByName
в следующем коде. Я чувствовал себя очень странно, поэтому я проверил MSDN. IWICBitmapFrameDecode::GetMetadataQueryReader
Но я обнаружил, что мой компьютер с XP соответствует минимальным требованиям к конфигурации (SP3), написанным в MSDN. Что еще более странно, функция возвращает WINCODEC_ERR_UNSUPPORTEDOPERATION
. Это так странно. Сначала я подумал, что это проблема моего собственного устройства, поэтому я одолжил несколько компьютеров с XP и запустил на них свой код. Все они возвращают WINCODEC_ERR_UNSUPPORTEDOPERATION
. Ошибка MSDN?