Oppure

Loading
14/05/08 21:30
Angel3x
int i ;
	ISpVoice * pVoice ;
	char app[1000] ;
	for(i=0;i<this->richTextBox1->TextLength;i++)
		{
			app[i]=this->richTextBox1->Text[i] ;
		}
    if (FAILED(::CoInitialize(NULL)))
        return ;

	HRESULT hr = CoCreateInstance(CLSID_SpVoice, NULL, CLSCTX_ALL, IID_ISpVoice, (void **)&pVoice);
    if( SUCCEEDED( hr ) )
    {
		hr = pVoice->Speak((const WCHAR *)app, 0, NULL);
        pVoice->Release();
        pVoice = NULL;
        // Change pitch
		
    }
    ::CoUninitialize();
		 }


Il codice è perfettamente funzionante,l'unico problema è che non parte la funzione Speak(),non viene sintettizato il testo presente nell'array.Qualcuno sa dirmi xke??
aaa
15/05/08 5:24
gantonio
Controlla il valore della variabile hr ...
aaa
15/05/08 10:24
Angel3x
il valore di hr è 0....
aaa
15/05/08 12:07
gantonio
Fai una prova scrivendo

hr = pVoice->Speak(L"testo di prova", 0, NULL);
aaa
15/05/08 17:04
Angel3x
Così funziona,il valore di hr dopo pVoice->speak() e sempre 0...
Non riesco a capire perchè se la passo così funziona e se la passo diversamente nn funziona.aiuto.....:-?
aaa
15/05/08 18:13
gantonio
Beh ... mi sa che la stringa non deve essere ANSI ma UNICODE e quindi devi dichiararla con

WCHAR app[1000];

e sicuramente il codice seguente

for(i=0;i<this->richTextBox1->TextLength;i++)
{
app=this->richTextBox1->Text ;
}

non ha senso ... cosa dovrebbe fare?
aaa
15/05/08 19:09
Angel3x
for(i=0;i<this->richTextBox1->TextLength;i++) 
{ 
app=this->richTextBox1->Text ; 
} 
scusa ma ti ho dato il codice sbagliato.quello giusto è:

for(i=0;i<this->richTextBox1->TextLength;i++) 
{ 
app[i]=System::convert::tochar(this->richTextBox1->Text[i]) ;
...
... 
} 

cmq adesso provo come hai detto tu...ti faccio sapere subito.
Grazie

:k:
aaa
15/05/08 19:16
Angel3x
ahhhhh,grazie 1000,il problema era proprio quello della codifica UNICODE invece della codifica ANSI.veramente grazie.c;)
aaa