このページでは、 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