C++ C++;:如何将SAPI与QT Creator一起使用?

C++ C++;:如何将SAPI与QT Creator一起使用?,c++,qt,sapi,C++,Qt,Sapi,我要做一个项目,创建一个包含文本到语音解决方案的web浏览器。我使用了MSDN()中的示例,但是当我试图编译我的项目时,我遇到了很多错误,而且我还没有找到任何解决方案 我正在为这个项目使用QT Creator 这是我的项目。pro: #------------------------------------------------- # # Project created by QtCreator 2015-06-18T15:14:25 # #-------------------------

我要做一个项目,创建一个包含文本到语音解决方案的web浏览器。我使用了MSDN()中的示例,但是当我试图编译我的项目时,我遇到了很多错误,而且我还没有找到任何解决方案

我正在为这个项目使用QT Creator

这是我的项目。pro:

#-------------------------------------------------
#
# Project created by QtCreator 2015-06-18T15:14:25
#
#-------------------------------------------------

QT       += widgets webkitwidgets network multimedia

TARGET = Project

TEMPLATE = app

SOURCES += main.cpp \
    browser.cpp

HEADERS += \
    browser.h

unix|win32: LIBS += -lsapi
还有我的main.cpp:

#include <sapi.h>
#include "sphelper.h"

int main(int argc, char *argv[])
{
    ISpVoice *pVoice;
    pVoice = NULL;
    HRESULT hr = SpCreateBestObject(SPCAT_VOICES, L”Gender=Female”, NULL, &pVoice); 
    // --> I tried with HRESULT hr = CoCreateInstance(CLSID_SpVoice, NULL, CLSCTX_ALL, IID_ISpVoice, (void **)&pVoice);, that's the same result...
    if( SUCCEEDED( hr ) )
    {
        hr = pVoice->Speak(L"Hello world", 0, NULL);
        pVoice->Release();
        pVoice = NULL;
    }
    return 0;
}
#包括
#包括“sphelper.h”
int main(int argc,char*argv[])
{
ISpVoice*pVoice;
pVoice=NULL;
HRESULT hr=SpCreateBestObject(SPCAT_VOICES,L“Gender=femal”,NULL,&pVoice);
//-->我尝试了HRESULT hr=CoCreateInstance(CLSID_SpVoice,NULL,CLSCTX_ALL,IID_ISpVoice,(void**)和pVoice),结果是一样的。。。
如果(成功(hr))
{
hr=pVoice->Speak(L“Hello world”,0,空);
pVoice->Release();
pVoice=NULL;
}
返回0;
}

谢谢你的帮助

这可能是我能想到的适用于MSVC的最简单的例子。我不认为QT Creator会有太大的不同

#include <sapi.h>
#include <sphelper.h>
#include <conio.h>

int main(int argc, char *argv[]){
    HRESULT hr = S_OK;
    CComPtr<ISpVoice> cpVoice;

    ::CoInitialize(NULL);

    hr = cpVoice.CoCreateInstance(CLSID_SpVoice);

    if(SUCCEEDED(hr)){
        cpVoice->Speak(L"This is a test phrase.", SPF_DEFAULT, NULL);
        cpVoice.Release();
    }

    puts("Press any key to continue...");
    getch();
}
#包括
#包括
#包括
int main(int argc,char*argv[]){
HRESULT hr=S_正常;
首席执行官;
::协同初始化(空);
hr=cpVoice.CoCreateInstance(CLSID_SpVoice);
如果(成功(hr)){
cpVoice->Speak(L“这是一个测试短语”,SPF_默认值,空);
cpVoice.Release();
}
放置(“按任意键继续…”);
getch();
}

此代码将获取默认语音并开始说话。在Windows 7中,声音将是安娜女士。

你好,机器人天灾,您的示例与QT Creator一起正确运行,非常感谢!