为什么在 32 位应用程序中使用 WIC 在 Windows 7 32 位中失败?

2024-02-15

我有 Win32 C++ 示例应用程序,它使用Windows 图像组件 http://msdn.microsoft.com/en-us/library/windows/desktop/ee719654%28v=vs.85%29.aspx在 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;
...

我可能做错了什么?


有一个VS2012 中的重大变化 http://social.msdn.microsoft.com/Forums/en-US/windowswic/thread/e542d34a-a04b-455e-bd5b-957f162bab94因为它默认针对 Windows 8。

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

所以试试这个

hr = CoCreateInstance(&CLSID_WICImagingFactory1, NULL, CLSCTX_INPROC_SERVER,
         &IID_IWICImagingFactory, &m_pIWICFactory);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么在 32 位应用程序中使用 WIC 在 Windows 7 32 位中失败? 的相关文章

随机推荐

  • 单例模板作为 C++ 中的基类[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 根据C 单例设计模式 https stackoverflow com questions 1008019 c singleton design
  • 通过 Socket.io 更新 React 状态

    我的 React 组件使用来自 socket io 的数据作为状态 我不确定如何在更新数据时更新状态而不重新渲染整个组件 示例代码 var socket io var data components key name markup sock
  • nginx 将 POST 请求重定向到 GET 请求

    我有 Rails 4 1 应用程序运行puma网络服务器 我使用 nginx 作为代理服务器 几天前 一切都进展顺利 我更新了我的应用程序 突然有些POST请求开始重定向到相同的网址 但作为GET要求 我尝试回滚到以前的工作版本 但没有成功
  • 在 C# 中以编程方式编译打字稿?

    我正在尝试用 C 编写一个函数 该函数接受包含打字稿代码的字符串并返回包含 JavaScript 代码的字符串 有这方面的库函数吗 您可以使用Process要调用编译器 请指定 out file js到临时文件夹并读取编译文件的内容 我做了
  • 如何找到所有兄弟情谊字符串?

    我有一个字符串和另一个包含字符串列表的文本文件 当两个字符串按字母顺序排序后完全相同时 我们将它们称为 兄弟字符串 例如 abc 和 cba 会被排序为 abc 和 abc 所以原来两者是兄弟关系 但 abc 和 aaa 则不然 那么 有没
  • Windows 上 Python 3.1 的 SendKeys

    最新的 Python Sendkeys 模块适用于 Python 2 6 我无法自己升级它 因为它需要重新编译 C 模块 有谁知道将密钥发送到窗口的相当简单的替代方法 使用 win32ui FindWindow 我可以找到正确的窗口 然后使
  • C#/.NET 中方法的自动记录异常 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想要一些工具 最好是能够插入 VS 2008 2010 的工具 它将遍历我的方法并添加有关它们可能抛
  • cv::Mat 的序列化给出了奇怪的结果

    我目前正在尝试序列化和反序列化 openCV Mat 以便我可以使用 Boost 将帧从客户端发送到服务器 我遇到的问题是 当我反序列化图像时 它会给出不同颜色的重复重叠图像 我不知道为什么会发生这种情况 任何帮助将非常感激 很抱歉我无法发
  • jquery事件优先级

    我有两个函数挂在submit表单的事件 每个功能都位于不同的位置 并且一个功能可以影响另一个功能 如何强制这些函数之一以最低优先级挂钩 即最后执行 我能想到的有四种方法 您自己管理回调 并且只有一个事件处理程序以所需的顺序调用函数 在应该最
  • 多对多关系、复选框的 CRUD 视图

    我很难弄清楚我需要做什么才能让它发挥作用 我正在使用 EF 学习 ASP NET MVC CodeFirst 如果我创建一个模型 我可以简单地为该模型添加一个控制器 并添加脚手架来创建自动处理 CRUD 的视图 但现在我有两个模型 项目和类
  • 如何隐藏跟踪像素

    不幸的是 我有一个跟踪像素 导致页脚底部出现一个小白条 隐藏像素的最佳方法是什么 我正在考虑将它 和我的其他像素 放入position absolutediv 它正确隐藏了栏 但我不确定这是否会阻止像素在某些浏览器上工作 From 谷歌支持
  • MVC3如何在控制器的类中发布列表?

    我有一堂课 public class CarList public int quantity get set public List
  • 基于Radius Google Maps iOS SDK更改相机变焦

    我正在开发一个应用程序 它根据当前位置周围的半径显示某些标记 半径在100 5000米之间 我用一个改变半径UISlider并重新绘制GMSCircle 我的问题是我想根据滑块值更新相机变焦 但我不知道要按哪个比例划分 这就是我在中创建相机
  • Spring JPA @Query JPQL 失败并显示“意外标记:DATE”

    我正在使用 Spring Data JPA 我想查询我的结果并过滤它们 在 SQL 中 我会像这样编写查询 针对 DB2 数据库 SELECT FROM CAR WHERE ACCIDENT YEAR IS NULL OR BUY YEAR
  • GKE VPC 本机集群以及与 Cloud SQL 的连接

    GKE 集群中的 VPC Native 是什么 VPC Native 禁用 GKE 集群 是否限制通过私有 IP 连接到 Cloud SQL 我们有一个 GKE 集群 其 VPC Native 被禁用 并且我们在 cloud sql 中将
  • 如何在 Python 中使用 OpenCV 存储网络摄像头视频

    我有一个 Python 脚本 它可以读取我的网络摄像头并将其显示在窗口中 我现在想存储结果 所以如下本教程 http opencv python tutroals readthedocs io en latest py tutorials
  • EJB 和 CDI bean 序列化的最佳实践

    我还没有遇到任何与序列化相关的问题 但 PMD 和 Findbugs 检测到一系列有关序列化的潜在问题 一个典型的情况是注入的记录器被检测为不可序列化 但还有更多 EntityManager和一些 CDI 豆 我还没有找到任何关于如何正确处
  • Swift 中 UITableView 的奇怪行为

    我有一个带有两个标签和一个图像的自定义单元格 我从互联网上收到一些 Json 数据 一切正常 每个单元格都填充相应的数据 我添加了一个新标签 必须像其他标签一样填写该标签 这是数据 let cell tableView dequeueReu
  • 查找不存在连接的记录

    我有一个范围来限制所有questions用户是否对其进行了投票 在模型中 scope answered by lambda u joins votes where votes user id u id scope unanswered by
  • 为什么在 32 位应用程序中使用 WIC 在 Windows 7 32 位中失败?

    我有 Win32 C 示例应用程序 它使用Windows 图像组件 http msdn microsoft com en us library windows desktop ee719654 28v vs 85 29 aspx在 Visu