このページでは、 95Reader/98Readerと Visual BASIC 4.0で、簡単なプログラムを試しに作ってみたので その過程を紹介します。
Visual C++ 4.0からSoundp.libを使ってみるを 参照してください。
インストールが済むと、d:\WINDOWS\SYSTEM\SOUNDP.DLL に 95Readerのライブラリがインストールされるようです。 (私のWindows95はD:にあります。) SOUNDP.DLLを使用して音声を出力するプログラムを作ってみました。
最近は、Microsoftのプログラミング言語もバージョンアップしていないので Visual Basic4.0しかありません。 (Visual Basicの最新版は6.0だったか?)
Visual Basic4.0でもプログラムは作れるので、作ってみました。 まず、次のようなフォームを作成しました。
フォームの上にCommandButtonを一つ置いただけです。 何の意味もないプログラムですが、 95Readerの音声ライブラリSoundp.dllを使用して しゃべらせるのが目的なのでよしとしましょう。
95ReaderのCD-ROMに入っていた説明書には、 「VC++ でご利用の方は 用意したヘッダファイルをご利用下さい。 VBでご利用の方は、ヘッダファイルでの定義に変わる処理を行って下さい。」 としか書いてありませんでした。
DLLを使用したことはなかったので、 VoiceExplorer98や 音声もぐらの SAPIを使用するソースを参考に、 オブジェクト:(General)、プロシージャ:(declarations)のところに、 以下のようなコードを書きました。
Private Declare Function SoundMessage Lib "Soundp.dll" (ByVal lpString As String, ByVal nFlag As Long) As Long
本当は、他にもいろいろな関数があるので、それらの関数を 使用する場合には、宣言をしておかなければいけませんが、 今回は記述しませんでした。 本当は、「BOOL SoundMessage(LPCSTR lpszString, int flags)」を こういう宣言で済ませてOKなのかちょっと不安です。
また、Visual Basic4だからか?うちの環境がそうなのか? 宣言が足りないからなのか?理由は良く分からないのですが、 私の場合、「Declare」の前に「Private」を書いておかないと、 「定数、固定長文字列、配列、またはDeclareステートメントは、クラスまたはフォームモジュールのPublicメンバとして定義することはできません。」 と怒られてしまってダメでした。
次に、ボタンをクリックしたときの動作を以下のように記述しました。 ボタンを押すと"こんにちは"としゃべるはずです。
Private Sub Command1_Click() SoundMessage "こんにちは", 0 End Sub
プロジェクトを保存するでファイルを保存してから、実行してみました。 ボタンをクリックすると、「こんにちは」としゃべりました。 もちろん、このとき95Readerを起動しておかないと 音声は出ません。
[ファイル(F)] [EXEファイルの作成(K)]で作った実行形式 ファイルを含めてリンクを張っておきます。 Visual Basic4のDLLがインストールされていないと、 実行できないと思います。
E-mail : nnakamur@mxq.mesh.ne.jp