调试sapi5文本到语音引擎

时间:2017-04-24 04:52:25

标签: c++ text-to-speech sapi nvda

我目前正在研究TTS引擎,我的工作是使其与Microsoft SAPI5兼容。我跟着教程here了解了SAPI示例项目,并成功构建了引擎dll。我用regsvr32注册了dll并将声音附加到注册表中。但是当一个应用程序(在我的情况下是NVDA屏幕阅读器)调用我的引擎时,我收到了错误(来自NVDA日志)

COMError: (-2147221164, 'Class not registered', (None, None, None, 0, None))

我显然对引擎做错了,但我不知道如何调试它。

2 个答案:

答案 0 :(得分:0)

您必须调试NVDA,而不是引擎。您需要确定它尝试访问哪个类。一旦你弄明白,你需要检查为什么你没有在COM注册表中正确注册你的引擎。

有关详细信息,请参阅

Error 80040154 (Class not registered exception) when initializing VCProjectEngineObject (Microsoft.VisualStudio.VCProjectEngine.dll)

答案 1 :(得分:0)

根据SAPI示例,在idl文件中声明了一个库(带有libid)和我的引擎类(带有clsid),然后有一个.rgs文件反过来会将引擎注册到注册表中,在我的问题中我做了使用libid错误地放置clsid,因此引擎未正确注册。