我目前正在研究TTS引擎,我的工作是使其与Microsoft SAPI5兼容。我跟着教程here了解了SAPI示例项目,并成功构建了引擎dll。我用regsvr32注册了dll并将声音附加到注册表中。但是当一个应用程序(在我的情况下是NVDA屏幕阅读器)调用我的引擎时,我收到了错误(来自NVDA日志)
COMError: (-2147221164, 'Class not registered', (None, None, None, 0, None))
我显然对引擎做错了,但我不知道如何调试它。
答案 0 :(得分:0)
您必须调试NVDA,而不是引擎。您需要确定它尝试访问哪个类。一旦你弄明白,你需要检查为什么你没有在COM注册表中正确注册你的引擎。
有关详细信息,请参阅
答案 1 :(得分:0)
根据SAPI示例,在idl文件中声明了一个库(带有libid)和我的引擎类(带有clsid),然后有一个.rgs文件反过来会将引擎注册到注册表中,在我的问题中我做了使用libid错误地放置clsid,因此引擎未正确注册。