启动BCB,打开菜单项PROJECT->Import Type Library...,在弹出的对话框中单击Add,选择windows/speech目录下的Vtxtauto.tlb,加入VtxtAuto[Version 1.0]一项。单击OK,BCB就会自动生成一个VtxtAuto_TLB.cpp文件。这个文件包含了TTS引擎的COM类接口,可以用来与DLL文件通信。新建一个工程,将这个文件包含进来:源码如下://Unit.h#ifndef Unit1H#define Unit1H//---------------------------------------------------------------------------#include <Classes.hpp>#include <Controls.hpp>#include <StdCtrls.hpp>#include <Forms.hpp>//---------------------------------------------------------------------------class TForm1 : public TForm{__published: // IDE-managed Components TEdit *Edit1; TButton *Button1; void __fastcall FormCreate(TObject *Sender); void __fastcall Button1Click(TObject *Sender);private: // User declarationspublic: // User declarations __fastcall TForm1(TComponent* Owner);};//---------------------------------------------------------------------------extern PACKAGE TForm1 *Form1;//---------------------------------------------------------------------------#endif//Unit.cpp//---------------------------------------------------------------------------#include <vcl.h>#pragma hdrstop#include "Unit1.h"#include "wstring.h"#include "VTxtAuto_TLB.h"//---------------------------------------------------------------------------#pragma package(smart_init)#pragma resource "*.dfm"TForm1 *Form1;IVTxtAuto *IVTxtAuto1;//---------------------------------------------------------------------------__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner){}//---------------------------------------------------------------------------void __fastcall TForm1::FormCreate(TObject *Sender){ WideString a = "Demo1"; WideString b = "Project1.exe"; WideString c= "Hi,I am trying to speak to you,Do you hear me?"; IVTxtAuto1 = NULL; CoInitialize(NULL); OleCheck(CoCreateInstance(CLSID_VTxtAuto_,0,CLSCTX_ALL,IID_IVTxtAuto, (LPVOID*)&IVTxtAuto1)); IVTxtAuto1->Register(a,b); IVTxtAuto1->set_Enabled(1); IVTxtAuto1->set_Speed(150); IVTxtAuto1->Speak(c,vtxtsp_VERYHIGH);}//---------------------------------------------------------------------------void __fastcall TForm1::Button1Click(TObject *Sender){ if(IVTxtAuto1 != NULL) { IVTxtAuto1->Speak((WideString)Edit1->Text,vtxtsp_VERYHIGH); ShowMessage("OK");//我的调试语句(没声卡) }else{ ShowMessage("服务器没有初始化成功"); }}//---------------------------------------------------------------------------//Project.cpp//---------------------------------------------------------------------------#include <vcl.h>#pragma hdrstopUSERES("Project1.res");USEFORM("Unit1.cpp", Form1);USEUNIT("D:/Borland/CBuilder5/Imports/VTxtAuto_TLB.CPP");//---------------------------------------------------------------------------WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int){ try { Application->Initialize(); Application->CreateForm(__classid(TForm1), &Form1); Application->Run(); } catch (Exception &exception) { Application->ShowException(&exception); } return 0;}//--------------------------------------------------------------------------- |
转载请注明原文地址: https://ibbs.8miu.com/read-2205.html