最近,我使用 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 电脑符合 MSDN 中写的最低配置要求(SP3)。更奇怪的是函数返回WINCODEC_ERR_UNSUPPORTEDOPERATION。太奇怪了。起初,我以为是我自己的设备问题,所以我借了几台 XP 电脑,在上面运行我的代码。他们都回来了WINCODEC_ERR_UNSUPPORTEDOPERATION。MSDN错了吗?