2013-05-05 26 views
0

所以,我有一个程序,我使用SAPI这样的:让SAPI TTS说话字符串变量

ISpVoice * pVoice = NULL; 

if (FAILED(::CoInitialize(NULL))) 
{ 
    return FALSE; 
} 

HRESULT hr = CoCreateInstance(CLSID_SpVoice, NULL, CLSCTX_ALL, IID_ISpVoice, (void  **)&pVoice); 
if(SUCCEEDED(hr)) 
{ 
    hr = pVoice->Speak(L"I can talk!", SPF_IS_XML, NULL); 
} 

但是我要声明一个变量,然后让SAPI说出来。我怎么做?

谢谢

+0

变量在任何C++教程的开头都是正确的。至少有点学习语言是明智的。 – chris 2013-05-05 04:03:30

+0

我对C++非常熟悉,但SAPI比我以前处理的任何事情都要复杂一些。 – 2013-05-05 04:07:01

+0

关于在SAPI中使用变量没有任何变化。 – chris 2013-05-05 04:12:09

回答

0

使用std::wstring。假设您希望用户输入要说的内容(禁止文本框和按钮):

std::cout << "Enter lines of text to speak:\n"; 
for (std::wstring text; std::wcin >> text;) { 
    if (FAILED(hr = pVoice->Speak(text.c_str(), SPF_IS_XML, NULL))) { 
     std::cout << "Sorry, the text could not be spoken. The error code is " << hr << '\n'; 
    } 
} 
+0

完美,谢谢你的清理。 – 2013-05-05 06:18:03