Delphi 2.0からSoundp.dllを使ってみる

このページでは、 95Reader/98Readerと Delphi 2.0で、簡単なプログラムを試しに作ってみたので その過程を紹介します。

目次

95Reader/98Readerを手に入れインストールする

Visual C++ 4.0からSoundp.libを使ってみるを 参照してください。

インストールが済むと、d:\WINDOWS\SYSTEM\SOUNDP.DLL に 95Readerのライブラリがインストールされるようです。 (私のWindows95はD:にあります。) SOUNDP.DLLを使用して音声を出力するプログラムを作ってみました。

フォームを作成する

Delphiの最新版はDelphi4です。 つい最近Delphi5もアナウンスされましたが、 私のWindows95には、Delphi2しか入っていません。 (Windows NTの方にはDelphi4を入れてあるのですが…)

Delphi2.0でもプログラムは作れるので、作ってみました。 まず、次のようなフォームを作成しました。

Buttonが一つ置かれたフォーム

フォームの上にButtonを一つ置いただけです。 何の意味もないプログラムですが、 95Readerの音声ライブラリSoundp.dllを使用して しゃべらせるのが目的なのでよしとしましょう。

コードを書く

95ReaderのCD-ROMに入っていた説明書には、 「VC++ でご利用の方は 用意したヘッダファイルをご利用下さい。 VBでご利用の方は、ヘッダファイルでの定義に変わる処理を行って下さい。」 としか書いてありませんでした。 Delphiユーザはどうしたら良いのでしょうか?

Visual Basicでの宣言を参考に、 以下のようなコードを書きました。 次に、ボタンをクリックしたときの動作を以下のように記述しました。 ボタンを押すと"こんにちは"としゃべるはずです。

unit hellofm;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private 宣言 }
  public
    { Public 宣言 }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

function SoundMessage(str: PChar; flags: Integer) : Boolean; Stdcall;
external 'Soundp.dll' name 'SoundMessage';

procedure TForm1.Button1Click(Sender: TObject);
begin
     SoundMessage('こんにちは', 0);
end;

end.

本当は、他にもいろいろな関数があるので、それらの関数を 使用する場合には、宣言をしておかなければいけませんが、 今回は記述しませんでした。

実行する

プロジェクトを保存するでファイルを保存してから、実行してみました。 ボタンをクリックすると、「こんにちは」としゃべりました。 もちろん、このとき95Readerを起動しておかないと 音声は出ません。

実行結果

実行時にできた実行形式ファイルを含めてリンクを張っておきます。 Delphi用のDLLがインストールされていないと、 実行できないかどうかは分かりません。

E-mail : nnakamur@mxq.mesh.ne.jp