2017-04-24 12 views
1

현재 TTS 엔진에서 작업하고 있으며 Microsoft SAPI5와 호환되도록 작업하고 있습니다. 나는 here 튜토리얼을 오래 SAPI 샘플 프로젝트와 함께 성공적으로 엔진 DLL을 만들었습니다. regsvr32로 dll을 등록하고 레지스트리에 음성을 첨부했습니다. 응용 프로그램 (내 경우 NVDA 스크린 리더) 내 엔진을 호출 할 때 그러나, 나는sapi5 음성 메시지를 디버깅 엔진

COMError: (-2147221164, 'Class not registered', (None, None, None, 0, None)) 
내가 분명히 엔진과 잘못을했을

(NVDA 로그에서) 오류를 가지고 있지만 어떻게 디버그 수도 아무 생각이 없다 이.

+0

다른 응용 프로그램 (예 : [TTSApp] (https://msdn.microsoft.com/en-us/library/ee125104(v=vs.85).aspx) 샘플에서 호출 할 때 TTS 엔진이 작동합니까? ? 그것은 훨씬 더 간단한 앱입니다. –

+0

나는 행운을 시험해 보았다. 클래스가 등록되지 않은 것과 같은 오류입니다. 것은 regsvr32를 사용하여 등록 할 때 "성공적으로"라고 말합니다. 나는 완전히 여기에서 길을 잃는다. – AtheS21

+1

당신은 정말로 답을 (다른 답에 포함되지 않은 경우) 대답으로 추가해야한다. 또한 제목에 "[SOLVED]"를 추가하는 관습이 없습니다. 일반적으로 문제를 해결 한 [답변 수락] (http://stackoverflow.com/help/accepted-answer)을 원합니다. (자신의 질문에 답변을 추가하고 다른 사람들이 여기에 게시 한 것과 다른 해결책을 찾은 경우이를 받아 들일 수 있음에 유의하십시오.) – EJoshuaS

답변

0

참조하십시오있는 차례 차례로 기입에 엔진을 등록 할 것이다, 나의 문제에서 나는 강요와 함께 clsid를 잘못 놓았다, 그러므로 엔진은 올바르게 등록되지 않는다.

0

엔진이 아닌 NVDA를 디버깅해야합니다. 어떤 클래스가 액세스하려고하는지 알아야합니다. 일단 당신이 COM 레지스트리에 엔진을 제대로 등록하지 않았는지 확인해야 할 필요가 있다고 판단한 경우.

자세한 내용은 다음 .RGS 파일이 SAPI 샘플에 따르면, IDL 파일의 라이브러리 (LIBID와)과 (CLSID와) 내 엔진 클래스를 선언

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

+0

늦게 답장을 보내 주셔서 진심으로 감사드립니다. 내 지식에 따르면, 클래스는 여기에서 sapi와 함께 작동하도록 ISpTTSEngine 및 ISpObjectWithToken을 구현 한 COM 클래스를 참조하며 등록되지 않은 이유를 분명히 알고 싶습니다. 적어도 등록 할 때 등록했기 때문입니다. 내 엔진의 타겟이 32 비트이고 app (NVDA)가 다른 32 비트 엔진에서 작동하기 때문에 문제가되지 않을 수도 있습니다 (32 비트 버전 만있는 lib를 사용하기 때문에 어떤 방법 으로든 x64로 전환 할 수 없습니다)) – AtheS21

+0

dumpbin –

+0

의 출력을 제공합니까? dll의 dumpbin을 의미합니까? https://drive.google.com/file/d/0B8Aq_py2DfCBdGxWUTZJdzhTZFU/view?usp=sharing – AtheS21