【问题标题】:REGDB_E_CLASSNOTREG on CLSID_WICPngDecoderCLSID_WICPngDecoder 上的 REGDB_E_CLASSNOTREG
【发布时间】:2012-08-16 20:01:30
【问题描述】:

我正在尝试为 HBITMAP 加载 PNG。我从 stackoverflow 中找到了这个 post。当我运行代码时,我在CoCreateInstance(CLSID_WICPngDecoder, NULL, CLSCTX_INPROC_SERVER, __uuidof(ipDecoder), reinterpret_cast<void**>(&ipDecoder) 上得到REGDB_E_CLASSNOTREG。我正在使用 Visual Studio 2012 RC,我已经完成了CoInitlaize,但我仍然遇到同样的错误可能是什么问题?

【问题讨论】:

    标签: c++ visual-c++ com png wic


    【解决方案1】:

    WIC API 建议您从工厂创建解码器,而不是直接使用其CLSID。请参阅IWICImagingFactory interface 和那里的示例代码。

    您可以选择从文件、流或指定容器格式GUID 创建。

    【讨论】:

    • 我在创建工厂实例时收到REGDB_E_CLASSNOTREG Class not registered。我复制粘贴了 MSDN 示例 hr = CoCreateInstance( CLSID_WICImagingFactory, NULL, CLSCTX_INPROC_SERVER, IID_IWICImagingFactory, (LPVOID*)&pFactory ); 再次向我抛出 REGDB_E_CLASSNOTREG Class not registered
    • 我厌倦了微软破坏 API 你需要用 CLSID_WICImagingFactory1 替换 CLSID_WICImagingFactory 我在谷歌搜索后找到了它。 social.msdn.microsoft.com/Forums/en-US/windowswic/thread/…
    • 使用 CLSID_WICImagingFactory1 对我有用,我在嵌入式 Windows 上运行时遇到了相同的 Class not registered 错误,即使 CLSID_WICImagingFactory 在 win7 上运行良好。
    猜你喜欢
    • 2011-03-01
    • 1970-01-01
    • 2010-11-25
    • 2016-09-29
    • 2017-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-28
    相关资源
    最近更新 更多