0
#include <windows.h>
#include <mmsystem.h>
#include <iostream>
#include <string.h>
#include <fstream> 

char *sounds[] = {"d.wav","ai.wav","v.wav","i.wav"};

int main()
{
    char input[20];
    int k;
    int i = 0;
    std::cin >> input;
    while (input[i])
    {
        k = input[i] - 'a';
        PlaySound(TEXT(sounds[k]), NULL, SND_ASYNC);
    }
system("pause");
}

テキスト読み上げプログラムを作成しようとして、この問題に遭遇しました。

int k は、入力を読み取り、読み取った文字列に関連付けられた .wav ファイルを再生します。問題は から発生しPlaySound(TEXT(sounds[k]), NULL, SND_ASYNC);ます。エラーの読み取り: ( IntelliSense: identifier "Lsounds" is undefined ) および ( error C2065: 'Lsounds': undeclared identifier )。どちらも同じことを意味しているように見えますが、問題の原因や原因がわかりません。Lsounds はどのように未定義でしたか、どのように修正しますか?

4

2 に答える 2

0

PlaySoundAPI は、WAVE ファイルの再生に使用されます。TTS にはSAPI COM インターフェイスを使用する必要があります。

CComPtr <ISpVoice>  cpVoice;

//Create a SAPI Voice
HRESULT hr = cpVoice.CoCreateInstance(CLSID_SpVoice);

if(SUCCEEDED(hr))
{
  cpVoice->Speak(L"Hello World",  SPF_DEFAULT, NULL);
}
于 2015-03-29T18:31:20.760 に答える
0

それTEXT(sounds[k])が問題を引き起こしているのです。TEXT()は、内部に入力した内容が続くように展開されるマクロであるLため、 と同等でLsounds[k]あるため、エラーが発生します。

于 2015-03-29T18:05:59.310 に答える