“未注册课程”在Windows 7上加载视频处理器MFT时 [英] "Class not registered" when loading the Video Processor MFT on Windows 7

查看:130
本文介绍了“未注册课程”在Windows 7上加载视频处理器MFT时的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下COM调用:

IMFTransform* pMFT = NULL;
HRESULT hr = CoCreateInstance(CLSID_VideoProcessorMFT, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&pMFT));

在我的开发计算机上,对 CoCreateInstance 成功。
但是,当我将其部署在旧的Windows 7计算机上时,
调用 CoCreateInstance 失败,
,我不知道为什么。
这是我如何显示错误:

On my development machine, this call to CoCreateInstance succeeds. However, when I deploy this on my old Windows 7 machine, the call to CoCreateInstance fails, and I don't know why. Here's how I'm displaying the error:

_com_error err(hr);
LPCTSTR hrErrMsg = err.ErrorMessage();
WCHAR msg[MAX_PATH];
StringCbPrintf(msg, sizeof(msg), L"HRESULT=0x%X, %s", errContext, hrErr, hrErrMsg);
MessageBox(hwnd, msg, L"Error", MB_ICONERROR);

这是我在该消息框中得到的错误:

And here's the error I get in that message box:

HRESULT=0x80040154, Class not registered

也就是说,视频处理器MFT
未注册。
我看到 CLSID_VideoProcessorMFT 被定义为:

That is, the COM class for the Video Processor MFT is not registered. I see that CLSID_VideoProcessorMFT is defined as:

EXTERN_GUID(CLSID_VideoProcessorMFT, 0x88753b26, 0x5b24, 0x49bd, 0xb2, 0xe7, 0xc, 0x44, 0x5c, 0x78, 0xc9, 0x82);

这是GUID 88753B26-5B24-49bd-B2E7-0C445C78C982 变相。
我知道COM类是使用包含此GUID的键在Windows注册表中注册的。
在开发人员计算机上使用注册表编辑器,我可以看到键:

This is the GUID 88753B26-5B24-49bd-B2E7-0C445C78C982 in disguise. I understand that COM classes are registered in the Windows Registry with a key containing this GUID. Using Registry Editor on my developer machine, I can see the key:

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{88753B26-5B24-49bd-B2E7-0C445C78C982}

,并且此键具有 %SystemRoot%\System32\msvproc.dll 的默认值,
指文件路径 C:\Windows\ System32\msvproc.dll ,确实存在的

and this key has a "Default" value of %SystemRoot%\System32\msvproc.dll, referring to the filepath C:\Windows\System32\msvproc.dll, which does exist.

在我的旧Windows 7计算机上,注册表中的此项确实不存在-
符合预期,因为出现类未注册错误。
C:\Windows\System32\msvproc.dll 中没有文件。
但这是步履艰难的地方。
我不知道应该在注册表中注册该类什么,
以及为什么它不能在我的旧Windows 7计算机上运行。

On my old Windows 7 machine, this key in the registry does not exist -- as expected, given the "Class not registered" error. And there is no file at C:\Windows\System32\msvproc.dll. But this is where the trail goes cold. I don't know what is supposed to register that class in the registry, and why it hasn't run on my old Windows 7 machine.

可能的结论:


  • 我必须自己注册视频处理器MFT。
    但是,文档并不建议这样做,
    我也不知道该怎么做。

  • Windows 7不支持视频处理器MFT。
    但是文档没有提供任何指示。
    实际上,他们说 Media Foundation需要Windows Vista或更高版本,
    应该包括我的Windows 7计算机。

  • 我正在将视频处理器MFT加载到错误的方法。
    是否有更独立于系统的加载方式?

以下哪个是正确的结论?是否可以在Windows 7上加载视频处理器MFT?如果是这样,怎么办?

推荐答案

即使视频处理器MFT的旧文档没有提及可用性限制,仍然可以从相关内容

Even though even older documentation for Video Processor MFT does not mention availability restrictions, they can still be assumed from related content:


< h3>要求

最低支持的客户端:Windows 8版本预览

Requirements

Minimum supported client: Windows 8 Release Preview

最低支持的服务器:Windows Server 2012

Minimum supported server: Windows Server 2012

针对Windows早期版本的应用程序可能应该使用其他DSPs ,例如色彩控制转换DSP和色彩转换器DSP。

Applications that target earlier versions of Windows are likely to be supposed to use other DSPs like Color Control Transform DSP and Color Converter DSP. These were/are not GPU accelerated though.

视频处理器MFT的优势在于它支持使用Microsoft Direct3D 11进行GPU加速的视频处理。

The advantage of Video Processor MFT was that it supported GPU-accelerated video processing using Microsoft Direct3D 11.

这篇关于“未注册课程”在Windows 7上加载视频处理器MFT时的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆