解决检索 COM 类工厂中 CLSID 为 {96749377-3391-11D2-9EE3-00C04F797396} 的组件失败,异常0x80040154,没有注册类问题分析和解决办法
最新推荐文章于 2023-04-29 16:58:05 发布
最新推荐文章于 2023-04-29 16:58:05 发布
检索 COM 类工厂中 CLSID 为 {96749377-3391-11D2-9EE3-00C04F797396} 的组件失败,异常0x80040154,没有注册类问题分析和解决办法
提供源代码,和解决问题的文件下载。
问题分析和解决
//阅读函数
private void Read(string text)
SpVoice sp = new SpVoice();//报错位置
sp.Rate = GetSpeedSelected();
SpeechVoiceSpeakFlags sFlags = SpeechVoiceSpeakFlags.SVSFlagsAsync;
sp.Speak(text, sFlags);
报错信息:
有关调用实时(JIT)调试而不是此对话框的详细信息,
请参见此消息的结尾。
************** 异常文本 **************
System.Runtime.InteropServices.COMException (0x80040154): 检索 COM 类工厂中
CLSID 为 {96749377-3391-11D2-9EE3-00C04F797396} 的组件失败,原因是出现以下错误:
80040154 没有注册类 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))。
在 System.Runtime.Remoting.RemotingServices.AllocateUninitializedObject
(RuntimeType objectType)
在 System.Runtime.Remoting.Activation.ActivationServices.CreateInstance
(RuntimeType serverType)
在 System.Runtime.Remoting.Activation.ActivationServices.IsCurrentContextOK
(RuntimeType serverType, Object[] props, Boolean bNewObj)
在 System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean
publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal&
ctor, Boolean& bNeedSecurityCheck)
在 System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean
skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)
在 System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean
skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)
在 System.Activator.CreateInstance(Type type, Boolean nonPublic)
在 System.Activator.CreateInstance(Type type)
在 SpeakDemo.Form1.Read(String text) 位置 c:\Users\Administrator\Desktop
\SpeakDemo\SpeakDemo\SpeakDemo\Form1.cs:行号 32
在 SpeakDemo.Form1.btnRead_Click(Object sender, EventArgs e) 位置 c:\Users
\Administrator\Desktop\SpeakDemo\SpeakDemo\SpeakDemo\Form1.cs:行号 43
在 System.Windows.Forms.Control.OnClick(EventArgs e)
在 System.Windows.Forms.Button.OnClick(EventArgs e)
在 System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
在 System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button,
Int32 clicks)
在 System.Windows.Forms.Control.WndProc(Message& m)
在 System.Windows.Forms.ButtonBase.WndProc(Message& m)
在 System.Windows.Forms.Button.WndProc(Message& m)
在 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
在 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
在 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
解决办法:
如果方法一不能解决问题,可以尝试方法二。
检索 COM 类工厂中 CLSID 为 {XXXX-XXXX-XXX-XXXXX-XXX} 的组件时失败,原因是出现以下错误: 80040154。
如以上问题出现,多半是因为COM控件未在目标机器上面注册造成的
解决方法:
Regsvr32 .net中引用控件的名称
如果注册成功,问题不出现
但是如果是在x64位的系统中,即使控件注册成功,错误依照提示,是因为大多数第三方写的COM控件,只支持32位的系统,
在VS中找到引用控件所在的项目--〉属性--〉生成--〉常规---〉目标平台---〉选择X86即可解决。
原因:有些GHOST版win 系统没有启动语音引擎 控制面板上没有 语音 这个选项
修复:打开“C:\Windows\Inf” 看有没有sapi5.inf 这个文件,如果没有网上下载,sapi5.inf复制到“C:\Windows\Inf”文件夹下。
下载地址:http://download.csdn.net/detail/wyx100/8430545
右键单击文件“sapi5.inf”,选择“安装”,提示“提示插入系统盘……”,没系统盘的话点“浏览”,从TTS解压的目录中选择需要的系统文件。
TTS下载地址:
http://download.csdn.net/detail/wyx100/8430545 xpTTS.zip
安装完成后,C:\Program Files\Common Files\microsoft shared\Speech 文件夹下
安装完成后,可以运行SpeakDemo.exe进行测试,如果不成功,继续操作。
运行sln(解决方案)前,需要修改sln文件中版本和实际使用的vs一致。如果没有安装vs,直接运行debub下的 SpeakDemo.exe
没有安装盘,把下载到的 [微软TTS5.1语音引擎(中文).msi]改名为微软TTS5.1语音引擎(中文).rar 用RAR解压,
改成提示中对应的文件名即可.
C:\Program Files\Common Files\Microsoft Shared\Speech\sapi.cpl
C:\Program Files\Common Files\SpeechEngines\Microsoft\Lexicon\1033\r1033tts.lxa
检索 COM 类工厂中 CLSID 为 {96749377-3391-11D2-9EE3-00C04F797396} 的组件失败,异常0x80040154,没有注册类问题分析和解决办法
下载本工具安装即可,修复windows系统不能说话
检索COM类工厂中CLSID为{96749377-3391-11D2-9EE3-00C04F797396}的组件失败,没有注册类问题分析和解决办法
错误提示:Retrieving the COM class factory for component with CLSID{96749377-3391-11D2-9EE3-00c04F797396}FAILED DUE TO THE FOLLOWING REEOE :;800700E找不到指定 模块{exception form hresult 0x8007007e}
工程文件当初使用win7 32位电脑编写,今年更换电脑(Win7 64位)发现工程运行到((System.ComponentModel.ISupportInitialize)(this.axS7_PPI1)).EndInit(),弹出“没有注册类 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))”错误提醒。搜索问题发现https://www.cnblogs.com/haibing0107/p/5740996.html?ivk_sa=1024320u
该博文完.
检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005
用C#动态生成Word文档功能实现了,在本地的机器运行时是好的,但程序发布安装到远程服务器上就报错了,
报错信息为:检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-00000000004...
System.Runtime.InteropServices.COMException (0x80040154): 没有注册类 (异常来自 HRESULT:0x80040154 (REGDB_E_CL
用windwos服务、owc、excle组件生成Excel文档,然后通过邮件自动发生给公司管理层,本来在本地测试、配置都正常,但是部署到Window 2003服务器上,服务启动后,日志文件记录程序出错,错误如下所示System.Runtime.InteropServices.COMException(0x80040154):
检索 COM 类工厂中 C...
C#中System.Runtime.InteropServices.COMException:“没有注册类。大概率是没有进行,目标平台:“X86",“X64”,“AnyCPU”。应该选择X86或者X64的。
IIS在文件管理资源器中,IIS添加之后,各个方面都需要进行调整。
System.Runtime.InteropServices.COMException (0x80040154)因为EncryptCom.dll 没有注册解决办法:注册EncryptCom.dll1.运行CMD,打开dos界面,并执行cd至根目录下2.执行Regsvr32 EncryptCom.dll,成功后系统提示注册成功3.4.
报错详细信息:用户代码未处理 System.Runtime.In...
在运行工程文件时,出现以下错误:问题的原因是DLL没有注册,本文提供一种解决方案。
以管理员方式运行CMD(命令行提示符)
输入 “cd 工程所在目录路径” 进入工程所在目录。如没法进入,则直接输入盘符加冒号可以进入: 输入 ”regsvr32 需要注册的dll名“,回车后显示注册成功: 此时,重新打开程序,可以运行了。
检索 COM 类工厂中 CLSID 为 {XXXX-XXXX-XXX-XXXXX-XXX} 的组件时失败,原因是出现以下错误: 80040154。
如以上问题出现,多半是因为COM控件未在目标机器上面注册造成的
解决方法:
Resvr32 .net中引用控件的名称
如果注册成功,问题不在出现
但是如果是在x64位的系统中,即使控件注册成功,错误依照提示,是因为大多数第三