SAPI也不是新颖的东西了,
我当前仍还找不到直接调用SAPI的方法,只能借用一下vbs来过渡:
示例:
#include <stdlib.h>
#include <stdio.h>
#include <Windows.h>
VOID Say(LPCSTR lpText)
{
FILE *fp;
fp=fopen("spkTmp.vbs","w");
if(fp == NULL)
{
printf("无法打开临时文件!\n");
return;
}
fprintf(fp,"Createobject(\"sapi.SpVoice\").Speak \"%s\"",lpText);
fclose(fp);
system("attrib +h spkTmp.vbs");
ShellExecute(0,"open","wscript.exe","\"spkTmp.vbs\"","",SW_SHOW);
system("attrib -h spkTmp.vbs");
Sleep(300);
system("del spkTmp.vbs");
return;
}
int main()
{
Say("你好!");
return 0;
}
额…没有Sleep(300)这一句wscript就赶不上被删除的vbs了,毕竟对程序的速度有一点影响。