私はMSDNのこのコードを使ってテキストをスピーチに変更しました。チュートリアルのすべてのチュートリアルを実行しましたが、コードはエラーなしで動作しますが、コードを実行すると、 2秒後にコードを読まずにメインコードに戻ります。私の質問はここに何が問題なのですか?プログラムが2秒未満で実行される
これはコードです:CoCreateInstance()
へ
#include "stdafx.h"
#include <sapi.h>
#include <initguid.h>
int main(int argc, char* argv[])
{
ISpVoice * pVoice = NULL;
if (FAILED(::CoInitialize(NULL)))
return FALSE;
HRESULT hr = CoCreateInstance(__uuidof(SpVoice), NULL, CLSCTX_ALL, __uuidof(SpVoice), (void **)&pVoice);
if(SUCCEEDED(hr))
{
hr = pVoice->Speak(L"Hello world", 0, NULL);
hr = pVoice->Speak(L"This sounds normal <pitch middle = '-10'/> but the pitch drops half way through", SPF_IS_XML, NULL);
pVoice->Release();
pVoice = NULL;
}
::CoUninitialize();
return TRUE;
}
は、ブレークポイントを設定し、一般的にデバッグを試してみてください。たとえば、そのコードに '!SUCCEEDED(hr)'と表示されることはありません。 – Ryan
デバッグを試しましたか? –
私はブレークポイントを試して、まだ動作していません。私はこのコールCoCreateInstance(CLSID_SpVoice、NULL、CLSCTX_ALL、IID_ISpVoice、(void **)&pVoice)を使用したときにSUCCEEDED(hr)をif(!SUCCEEDED(hr))に変更し、まだ何も – Marco