我把接电话的功能封装为一个dll,又把microsoft得TTS(Text to speak)功能封装为另一个dll。接电话的功能是通过两个callback函数cst_hdle(电话响铃触发)和sethook_hdle(电话摘机)。这两个函数必须是静态函数,因为一般类函数带有this指针。把这两个函数指针传入dll,就可以工作了。我要使用tts的一个savetofile()把一段文本保存为wav文件,然后利用语音卡的播放功能,使拨入电话的一方能够听到。很奇怪的是我在cst_hdle或是sethook_hdle里面调用savetofile(),不能听见任何声音,一查,发现生成了声音文件,但是大小为0。如果在这两个函数外先调用savetofile(),再在这两个函数里面播放生成的声音文件,就没有什么问题。
我把接电话的功能封装为一个dll,又把microsoft得TTS(Text to&n