このページでは、 95Reader/98Readerと C++Builder 1.0で、簡単なプログラムを試しに作ってみたので その過程を紹介します。
Visual C++ 4.0からSoundp.libを使ってみるを 参照してください。
C++Builderの最新版はC++Builder4です。 私のWindows95には、C++Builder1しか入っていません。 (Windows NTの方にはC++Builder3を入れてあるのですが…)
以下のようなプログラムを作成しました。 実行すると、"こんにちは"としゃべるプログラムです。
# include <WINDOWS.H>
# include <PF_Def.h>
# include <SOUNDMSG.H>
int main() {
SoundMessage("こんにちは", 0);
exit(0);
}
また、以下のようなMakefileを作成しました。 パスは、各自の環境似合わせて変更してください。
all: BCC32 -Id:\95READER\Prog95 hello.c Soundp.lib error: BCC32 -Id:\95READER\Prog95 hello.c d:\95READER\Prog95\Soundp.lib
そして、以下のようにmakeしました。 makeする前には当然C++Builderのところにパスを 通しておく必要があります。 実行結果とともにmakeの様子を以下に示します。
> make -f hello.mak error
MAKE Version 5.0 Copyright (c) 1987, 1997 Borland International
BCC32 -Id:\95READER\Prog95 hello.c d:\95READER\Prog95\Soundp.lib
Borland C++ 5.2 for Win32 Copyright (c) 1993, 1997 Borland International
hello.c:
Warning hello.c 10: Function should return a value in function main
Turbo Link Version 2.0.68.1 Copyright (c) 1993,1997 Borland International
Fatal: Bad object file 'd:\95READER\Prog95\Soundp.lib' near file offset 0
** error 1 ** deleting error
理由は分かりませんが、Visual C++で作成されたライブラリなので、 C++Builderで直接リンクできないようです。
いろいろ本を読んでも難しいことが書いてあって、 いまいち良く分かりませんでした。 とりあえず、今のところimplibを使用して、DLLからライブラリを作成し、 そのファイルをリンクすれば動くらしいことが分かりました。 まず、以下のようにDLLからライブラリを作成しました。
> implib Soundp.lib d:\WINDOWS\SYSTEM\SOUNDP.DLL
次に、前に書いたMakefileで以下のようにmakeしました。
> make -f hello.mak
今度は、コンパイルができhello.exeができていました。 実行すると、「こんにちは」としゃべりました。
もちろん、このとき95Readerを起動しておかないと 音声は出ません。
実行ファイルを含めてリンクを張っておきます。 C++Builder用のDLLが必要なのかどうかは分かりません。 (そういうのが存在するのかな?)
E-mail : nnakamur@mxq.mesh.ne.jp