gpt4 book ai didi

visual-studio - 为什么在我的 32 位应用程序中使用 WIC 在 Windows 7 32 位中失败?

转载 作者:行者123 更新时间:2023-12-04 06:08:15 24 4
gpt4 key购买 nike

我有使用 Windows Image Component 的 Win32 C++ 示例应用程序在 Visual Studio Pro 2012 Update 2 中。我为 X86 构建了这个应用程序,并在 Windows 7 X64 SP1 和 Windows 7 X86 SP1 中进行了测试。它在第一个上运行良好,在后一个上失败并显示“类未注册”。

如果我使用 VS2008 构建相同的代码,它工作正常。

WIC 实例在示例应用程序中创建如下:

#include "wincodec.h"
...
case WM_CREATE:
{
IWICImagingFactory *m_pIWICFactory;
HRESULT hr = S_OK;

CoInitialize(NULL);
// create WIC factory (m_pIWICFactory)
hr = CoCreateInstance(
&CLSID_WICImagingFactory,
NULL,
CLSCTX_INPROC_SERVER,
&IID_IWICImagingFactory,
&m_pIWICFactory);
if (!SUCCEEDED(hr))
MessageBox(NULL,
L"CoCreateInstance(..IID_IWICImagingFactory..) failed!",
L"", MB_OK);
else
MessageBox(NULL,
L"CoCreateInstance(..IID_IWICImagingFactory..) succeeded!",
L"", MB_OK);

CoUninitialize();
}
break;
...

我做错了什么?

最佳答案

有一个breaking change in VS2012因为它默认针对 Windows 8。

解决方案是指定 CLSID_WICImagingFactory1 代替 CLSID_WICImagingFactory,因为后者解析为 CLSID_WICImagingFactory2,它在 Windows 7 中不存在。

那么试试这个

hr = CoCreateInstance(&CLSID_WICImagingFactory1, NULL, CLSCTX_INPROC_SERVER,
&IID_IWICImagingFactory, &m_pIWICFactory);

关于visual-studio - 为什么在我的 32 位应用程序中使用 WIC 在 Windows 7 32 位中失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16697112/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com