void CSapitestDlg::OnSpeak()
{
// ISpVoice * pVoice = NULL;
// if (FAILED(::CoInitialize(NULL)))
// {
// AfxMessageBox("Error to intiliaze COM");
// return;
//}
CComPtr<ISpVoice> pVoice;
HRESULT hr = pVoice.CoCreateInstance(CLSID_SpVoice);
//HRESULT hr = CoCreateInstance(CLSID_SpVoice, NULL, CLSCTX_ALL, IID_ISpVoice, (void **)&pVoice);
if( SUCCEEDED( hr ) )
{
hr = pVoice->Speak(L"hello", 0, NULL);
pVoice.Release();
pVoice = NULL;
} CoUninitialize();
}我上面注释掉的部分如果取消掉 再把CComPtr相应的部分取消掉 就可以发音了 为什么呢?
{
// ISpVoice * pVoice = NULL;
// if (FAILED(::CoInitialize(NULL)))
// {
// AfxMessageBox("Error to intiliaze COM");
// return;
//}
CComPtr<ISpVoice> pVoice;
HRESULT hr = pVoice.CoCreateInstance(CLSID_SpVoice);
//HRESULT hr = CoCreateInstance(CLSID_SpVoice, NULL, CLSCTX_ALL, IID_ISpVoice, (void **)&pVoice);
if( SUCCEEDED( hr ) )
{
hr = pVoice->Speak(L"hello", 0, NULL);
pVoice.Release();
pVoice = NULL;
} CoUninitialize();
}我上面注释掉的部分如果取消掉 再把CComPtr相应的部分取消掉 就可以发音了 为什么呢?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货