创建Com对象

本文关键字:对象 Com 创建 | 更新日期: 2023-09-27 18:09:44

你好,我得到了以下异常。

为CLSID {6BF52A4F-394A-11D3-B153-00C04F79FAA6}的组件检索COM类工厂失败,原因是以下错误:80040154类未注册(异常来自HRESULT: 0x80040154 (regdbe_classnotreg)))。

当我尝试用流代码创建一个COM对象(在c#中)

Object instancePlayer = null;
Guid guid_IWMPPlayer = typeof(WMPLib.IWMPPlayer).GUID;
Guid guid_IUnknown = new Guid("00000000-0000-0000-C000-000000000046");
Type type = Type.GetTypeFromCLSID(guid_IWMPPlayer);
instancePlayer = Activator.CreateInstance(type);

创建Com对象

COM使用GUIDs来标识类和接口。看起来您正在使用称为IWMPPlayer的接口ID (IID)而不是类ID (CLSID)。看看你是否能找到一个相应的类为播放器对象,并使用GUID

更新:我帮你查了一下课程。像这样获取CLSID

Guid guid_WMPPlayer = typeof(WMPLib.WindowsMediaPlayer).GUID;

…然后将CLSID传递给Type.GetTypeFromCLSID

更新2:我可以检查一下,你确实需要使用这些guid吗?

instancePlayer = new WMPLib.WindowsMediaPlayer();

……?