Недавно я использовал WI C для разбора 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 не так?