<%@ Language=JavaScript %> bcc5.5.1でフリーの開発環境

Click here to visit our sponsor

bcc5.5.1でフリーの開発環境

改訂:2001/05/16 智藏 < tomozou@cocoa.freemail.ne.jp >


はじめに

2000/02/16、Inprise/Borland が、C++ コンパイラ Borland C++ 5.5 Compiler と関連するコマンドラインツールを無償配布することを発表したのをうけて、日本法人であるインプライズ(株) / 現ボーランド(株) は 200/03/ 08、その日本語版を Web サイト上で無償配布することを発表した。さらに、2000/07/18 には、Borland C++ Compiler 5.5 に対応したデバッグツール Turbo Debugger 5.5 日本語版 を Web サイト上で無償配布することを発表した。このことにより、Win32API 用の C/C++ 開発のコアになる製品レベルの品質のツールが無償で利用できるようになった。

以前から Win32API 用のフリーな C/C++ 開発環境はいくつか存在していたが、広範囲な Unix の知識が必要だったり、漢字コードの取り扱いに問題があったり、作成したバイナリの配布に対して制限があったりして、気軽に開発ができる環境とは言い難いものがあった。

大規模なアプリケーションソフトを効率的に開発するには、サポートが充実した製品版を購入するべきだと考えるが、すこし工夫をすれば bcc5.5.1 でも、かなり実用的な Win32API 用の開発環境を構築できる。ここでは、bcc5.5.1 を中心とした開発環境を整える一例を紹介したい。

本文書中の情報は自身の判断に基づき利用してほしい。著者は本文書の内容に関するいかなる責任も負うことができない。本文書中の構想、事例、およびその他の内容に関しては、完全に自身の責任で利用してほしい。

準備

必要なソフトウェアの入手

Borland C++ Compiler 5.5.1
C/C++ コンパイラとツール群。配布物は下記 URL の「Borland C++ Compiler 5.5 のダウンロード」より進むことで入手できる。現在入手できるのは 2000/08/31 にバグフィックスを含むアップデートがおこなわれた Borland C++ Compiler 5.5.1 だ。
ファイル名: freecommandlinetools2.exe ( 8,879,522 bytes )
URL: http://www.borland.co.jp/cppbuilder/freecompiler/index.html ボーランド(株)
Turbo Debugger 5.5
Borland C++ Compiler 5.5 に対応したデバッグツール。配布物は上記 URL の「Turbo Debugger 5.5 のダウンロード」より進むことで入手できる。インストールするには「使用者登録」をしてインストール用パスワードを取得する必要がある。
ファイル名: freeturbodebugger.exe ( 660,107 bytes )
URL: http://www.borland.co.jp/cppbuilder/freecompiler/turbodebugger.html ボーランド(株)
Borland C++Builder 5 product documentation Standard edition
英語版 Borland C++Builder 5 Standard edition のヘルプファイル。
ファイル名: b5std.zip ( 7,746,834 bytes )
URL: http://www.borland.com/techpubs/bcppbuilder/v5/updates/std.html 米国ボーランド社
NASM 0.98
アセンブラ。下記の URL は日本から近いと思われるミラーサイトだ。オリジナルの配布元は Nasm Home Page を参照してほしい。
ファイル名: nasm-0.98-win32.zip ( 164,052 bytes )、nasm-0.98-xdoc.zip ( 547,725 bytes )
URL: http://www.jp.kernel.org/pub/software/devel/nasm/binaries/win32/ Nasm Home Page
ファイル名: nasm-0.98.zip ( 553,566 bytes )、nasm-0.98-whlp.zip ( 243,254 bytes )
URL: http://www.jp.kernel.org/pub/software/devel/nasm/source/ Nasm Home Page
DOS Prompt Here
コマンドプロンプトツール。
ファイル名: comhere.lzh ( 3,281 bytes )
URL: http://plaza7.mbn.or.jp/~suto/pt.htm むっちゃんのホームページ

Borland C++ Compiler 5.5.1

Borland C++ Compiler 5.5.1 ( 以下 bcc5.5.1 とする ) は、ボーランド(株)が無償配布している C/C++ コンパイラと関連するツールだ。これらの開発ツールは製品版の Borland C++Builder 5 Standard edition ( 以下 bcb5 とする ) に含まれるものと同じものだ。配布物に含まれているツール類には次のようなものがある。

無償配布版は次のような製品版との違いがある。

無償配布版には、ほんとうに必要最小限のツール類しか含まれていないが、それでも、一般製品レベルの品質のアプリケーションソフトを作成することは可能だ。同社は以前にも ( はるか昔と言い換えたほうがいいかもしれないが )、他社製品を圧倒する性能の C コンパイラを「お験し版」というかたちで無償配布していた。同社のこういった姿勢には頭が下がる思いだ。

インストール

配布物の freecommandlinetools2.exe は自己展開型実行ファイルなので、実行するとインストールが始まる。インストールの手順は次のとおり。

  1. まず、「使用許諾契約」のダイアログボックスが表示されるので、使用許諾契約をよく読み、内容を理解したうえで、「同意する」をクリックする。
  2. 「インストール先の設定」のダイアログボックスが表示される。デフォルトでは c:\Borland\bcc55 にインストールするようになっているで、「完了」をクリックする。
  3. 新規インストールではディレクトリ c:\Borland\bcc55 は存在しない。そのため、新規作成するかどうかを問い合わせるダイアログボックスが表示されるので「はい」をクリックする。
  4. インストールの経過を示すダイアログボックスが表示される。
  5. インストールが終了すると、「パッケージの転送に成功しました。」のダイアログボックスが表示されるので、「OK」をクリックする。

インストール後にディレクトリ c:\Borland\bcc55 にある license.txt と readme.txt をよく読んでおいてほしい。

環境設定ファイル

テキストエディタをつかってコンパイラ bcc32.exe とリンカ ilink32.exe の動作に必要な環境設定ファイルを作成する。これらのファイルを作成することで、それぞれのコマンド実行時に決まったオプションをいちいち指定する必要がなくなる。

bcc32.cfg

コンパイラ bcc32 用の環境設定ファイル bcc32.cfg の内容は次のようにする。

-I"C:\Borland\Bcc55\include"
-L"C:\Borland\Bcc55\lib;C:\Borland\Bcc55\lib\PSDK"
-DWINVER=0x0400
-D_WIN32_WINNT=0x0400

-I: インクルードファイルのサーチパス
-L: ライブラリファイルのサーチパス
-DWINVER、-D_WIN32_WINNT: ターゲットのメジャーバージョン
配布物に含まれる Win32SDK ではターゲットとなるメジャーバージョンが 0x0500 ( Windows 2000 相当 )になっている。下位互換性をとるため、これらのマクロ定義でターゲットとなるメジャーバージョンを 0x0400 ( Windows 98 相当 ) にする。

作成したファイルは C:\borland\bcc55\Bin に保存する。

ilink32.cfg

インクリメンタルリンカ ilink32 用の環境設定ファイル ilink32.cfg の内容は次のようにする。

-L"C:\Borland\Bcc55\lib;C:\Borland\Bcc55\lib\PSDK"

-L: ライブラリファイルのサーチパス

作成したファイルは C:\borland\bcc55\Bin に保存する。

環境変数 PATH の設定

bcc32、ilink32 などの bcc5.5.1 に含まれるコマンドは、C:\borland\bcc55\Bin に置かれている。どのディレクトリをカレントにしてもこれらのコマンドが実行できるよう、環境変数 PATH に C:\borland\bcc55\Bin を追加する。環境変数 PATH の設定方法は、それぞれの Windows のマニュアルを参照してほしい。例として Windows 98 の設定方法を挙げておく。

C:\Autoexec.bat をテキストエディタで開き、PATH を設定している行のあとに次の 1 行を加える。

SET PATH="C:\borland\bcc55\bin;%PATH%"

ファイルを保存し、コンピュータを再起動すると設定が反映される。

動作テスト

DOS プロンプトを開き、C:\borland\bcc55\Bin 以外のディレクトリをカレントにする。ここでは作業ディレクトリ D:\works を新規作成し、そこをカレントとした。テキストエディタを使って簡単な C++ プログラムを作成し、 test.cpp というファイル名で D:\works に保存する。

#include <iostream.h>

void main(void)
{
        cout << "Hello, world" << endl;

        cout << "WINVER: " << hex << WINVER << endl
             << "_WIN32_WINNT: " << hex << _WIN32_WINNT << endl;
}

まず、作成した C++ ソースファイル test.cpp を bcc32 でコンパイルして、オブジェクトファイル test.obj を作成してみる。DOS プロンプトで次のように実行する。

D:\works>bcc32 -c -v -y -w -WC test.cpp
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
test.cpp:

D:\works>

エラーや警告が表示されずにコンパイルが終了すると、ディレクトリ D:\works に test.obj が作成されている。この結果から、次のことが判る。

次に、作成されたオブジェクトファイル test.obj をリンクして、実行形式ファイル test.exe を作成してみる。DOS プロンプトで次のように実行する。

D:\works>ilink32 /c /ap /Tpe /r /s /v /w c0x32.obj test.obj, test.exe,, import32
.lib cw32.lib
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
RLINK32 Version 4.00 (c) Copyright 1992-1999 Borland International.
Input resource file #1: "TMP1.$$$"
Reading resource files.

RESOURCE LIST
Key: The attributes Language, Data Version, Version, and Characteristics are
shown in hex. They appear only if they are nonzero. *Discardable resource.
Type ID Name ID File Size Language Data Version
10 (RCDATA) DVCLAL 1 16
Writing resources.
Resources linked.

D:\works>

エラーや警告が表示されずにコンパイルが終了すると、ディレクトリ D:\works に test.exe が作成されている。この結果から、次のことが判る。

最後に、作成された実行形式ファイル test.exe を実行してみる。DOS プロンプトで次のように実行する。

D:\works>test.exe
Hello, world
WINVER: 400
_WIN32_WINNT: 400

D:\works>

画面上に正常に文字が表示され、コマンドプロンプトに戻ってくれば、この実行形式ファイルは正常に動作している。この結果から、次のことが判る。

以上のテストの結果をみて正常にインストールできているか確認してほしい。

Turbo Debugger 5.5

Turbo Debugger 5.5 ( 以下 td5.5 とする ) はボーランド(株)が無償配布している bcc5.5.1 に対応したデバッグツールだ。bcc5.5.1 でコンパイル時に -v -y オプション、リンク時に /v オプションを指定することにより、作成した実行形式ファイルにデバック情報が埋め込まれ、出力された .TDS 形式のデバッグ情報ファイルを使ってソースコードレベルのデバックができる。

同社は td5.5 を 「AS IS ( あるがまま ) 」で提供している。そのため、いっさいの保証やサポートは受けることができないし、このツールに関するバグレポートの受付や将来の修正なども予定されていない。それでも、ソースコードレベルのデバックができる開発環境が有ると無いでは大違いである。

インストール

td5.5 をインストールするには、配布サイトで「使用者登録」をしたのちに e-mail で送られてくるインストール用パスワードを取得する必要がある。パスワードが取得できたらインストール作業をはじめる。

配布物の freeturbodebugger.exe は自己展開型実行ファイルなので、実行するとインストールが始まる。インストールの手順は次のとおり。

  1. まず、パスワードの入力を求めるダイアログボックスが表示されるので、「使用者登録」時に送られてきた e-mail に書かれているパスワードを入力し、「次へ」をクリックする。
  2. 「使用許諾契約」のダイアログボックスが表示されるので、使用許諾契約の内容をよく読み理解したうえで、「同意する」をクリックする。
  3. 「インストール先の設定」のダイアログボックスが表示される。デフォルトでは bcc5.5.1 がインストールされているディレクトリ c:\Borland\bcc55 にインストールするようになっているで、「完了」をクリックする。
  4. インストールの経過を示すダイアログボックスが表示される。
  5. インストールが終了すると、「パッケージの転送に成功しました。」のダイアログボックスが表示されるので、「OK」をクリックする。

インストール後にディレクトリ c:\Borland\bcc55 にある td32read.txt には、使用方法や表示とマウス関係のトラブルを回避する方法などが書かれているのでよく読んでおいてほしい。

起動テスト

DOS プロンプトから td5.5 を起動してみる。

D:\works>td32

td5.5 のウィンドウが開き、バージョンを示すダイアログボックスが表示される。「OK」をクリックすると、td5.5 が使用可能になる。

まず、画面最下行に表示されるクイックリファレンスを日本語で表示するよう設定する。

  1. メニュー「Options」→「Display options...」で表示される「Display options」ダイアログボックスの「Quick reference」の項目で「Japanese」を選択し、「OK」ボタンをクリックする。
  2. メニュー「Options」→「Save options...」で表示される「Save Configuration」ダイアログボックスで「Options」が選択されているのを確認し、「OK」ボタンをクリックする。

これで、次回起動時からもクイックリファレンスが日本語で表示されるようになる。配布物には td5.5 についての詳細なマニュアルは含まれていないので、メニュー「Help」→「Index」で表示されるヘルプと、このクイックリファレンスをよく見て操作方法のあたりをつけてほしい。

次に、実際に実行形式のファイルを読みこんでみる。bcc5.5.1 をインストールしたときに作成した test.exe はコンパイル時に -v -y オプション、リンク時に /v オプションをつけて作成してあるので、ソースレベルデバッグが可能になっている。

  1. メニュー「File」→「Open...」で「Load a new program to debug」ダイアログボックスを開く。
  2. 「Browse...」ボタンをクリックすると、「Enter program name to load」ダイアログボックスが開くので、読みこむファイル ( ここでは test.exe ) を選択し、「OK」をクリックする。
  3. 「Load a new program to debug」ダイアログボックスに戻るので、「Program name」が選択したファイルになっているのを確認し、「OK」をクリックする。
  4. ファイルが読み込まれ、そのファイルの実行用ウィンドウが開かれたのち、デバッグが可能になる。

td5.5 を終了するには、メニュー「File」→「Quit」をクリックする。

Borland C++Builder 5 product documentation Standard edition

米国ボーランド社のサイトでは bcb5 の英語版ヘルプファイルが入手できる。bcc5.5.1 の無償配布版にはソフトウェア開発に必要な開発環境の詳細なマニュアル類やプログラミングガイドが含まれていないので、このヘルプファイルを利用することにする。

インストール

配布物の b5std.zip は ZIP 形式で圧縮されているので ZIP 形式に対応したアーカイバを使って展開する。展開先は C:\borland\bcc55\help だと、すでにインストールされている日本語版 bcb5tool.hlp を上書きしてしまうので、ディレクトリ C:\borland\bcc55\help\bcb5 を新規作成し、そこへ展開する。

展開されたファイルに含まれている Bcb5.hlp が BCB5 ヘルプの総合目次だ。

NASM 0.98

NASM (The Netwide Assembler) は、ケンブリッジ大学の Simon Tatham とワーウィック大学の Julian Hall によって書かれた x86 系クロスアセンブラだ。文法はインテルニーモニックを採用しているが、より簡素により解りやすくしているため、NASM などとソースレベルでの完全な互換性はない。しかし、Windows や Linux など多くの x86 系 OS で利用することができ、それらの OS が使用する多くのオブジェクトファイル形式をサポートしている。

bcc5.5.1 の無償配布版にはアセンブラが含まれていないので、そのままではアセンブリ言語で書かれたソースをアセンブルできない。アセンブラとして NASM をインストールすることにより、アセンブリ言語でも開発できるようにする。

インストール

配布物の nasm-0.98-win32.zip ( NASM 本体 )、nasm-0.98-xdoc.zip ( ドキュメント )、nasm-0.98.zip ( ソースファイル )、nasm-0.98-whlp.zip ( ヘルプファイル ) は ZIP 形式で圧縮されているので ZIP 形式に対応したアーカイバを使って展開する。

  1. インストール先のディレクトリとして "C:\Program Files\nasm" を新規作成する。
  2. "C:\Program Files\nasm" に nasm-0.98-win32.zip を展開する。
  3. "C:\Program Files\nasm" にディレクトリ xdoc を新規作成し、そこに nasm-0.98-xdoc.zip を展開する。
  4. "C:\Program Files\nasm" にディレクトリ source を新規作成し、そこに  nasm-0.98.zip を展開する。
  5. "C:\Program Files\nasm" に nasm-0.98-whlp.zip を展開する。

配布物を展開したのち、まず、Licence と Readme をよく読んで理解してほしい。同じディレクトリに展開されている nasmw.exe がアセンブラ、ndisasmw.exe がディスアセンブラだ。

どのディレクトリからでも NASM を実行できるように、 環境変数 PATH に "C:\Program Files\nasm" を追加してもよいが、ここでは bcc5.5.1 をインストールしたときに PATH に追加している C:\borland\bcc55\bin に nasmw.exe と ndisasmw.exe コピーした。さらに、WIN32 版しか使わないので、マニュアルに書かれているようにこれらの実行形式ファイルをそれぞれ nasm.exe、ndisasm.exe にリネームした。

起動テスト

DOS プロンプトから NASM を実行してみる。

D:\works>nasm -r
NASM version 0.98

D:\works>

DOS Prompt Here

米国マイクロソフト社が無償配布しているツール集 Power Toys に含まれている、エクスプローラ上の任意のディレクトリをカレントとして DOS プロンプトを開くツールだ。オリジナルは英語版だが、「X-Toysを日本語化する プロジェクトチーム」が同じ動作をする日本語版を配布しているのでこれを利用する。bcc5.5.1 はコマンドライン版のツール集で DOS プロンプトを多用するため、このツールを利用するとかなり楽に作業ができるようになる。

配布物の comhere.lzh は LZH 形式で圧縮されているので LZH 形式に対応したアーカイバを使って適当なディレクトリに展開する。展開したのち comhere.txt をよく読み使用方法を理解してほしい。

配布版では DOS プロンプトを開くときの環境変数の容量がデフォルトのままのようなので、テキストエディタをつかって comhere.inf を編集し、環境変数の容量を 4096 バイトにした。変更したのは、それぞれ 54、56、62、64 行目で、該当する部分は次のように変更した。

  52: [XHere.reg]
  53: HKCR,%DIRSX%,,,%DOSHR%"(&P)"
  54: HKCR,%DIRSX%\command\,,,"%25%\COMMAND.COM /E:4096 /K CD %1"
  55: HKCR,%DRVSX%,,,%DOSHR%"(&P)"
  56: HKCR,%DRVSX%\command\,,,"%25%\COMMAND.COM /E:4096 /K CD %1"
  57: HKLM,%SMWCUX%,displayname,,%DOSHR%" (Remove only)"
  58: HKLM,%SMWCUX%,uninstallstring,,"%XHERE_REMOVE% %17%\COMHERE.INF"
  59:
  60: [XHere.reg.nt]
  61: HKCR,%DIRSX%,,,%CMDHR%"(&P)"
  62: HKCR,%DIRSX%\command\,,,"%11%\CMD.EXE /E:4096 /K CD %1"
  63: HKCR,%DRVSX%,,,%CMDHR%"(&P)"
  64: HKCR,%DRVSX%\command\,,,"%11%\CMD.EXE /E:4096 /K CD %1"
  65: HKLM,%SMWCUX%,displayname,,%CMDHR%" (Remove only)"
  66: HKLM,%SMWCUX%,uninstallstring,,"%XHERE_REMOVE_NT% %17%\COMHERE.INF"

編集したファイルを保存したら、エクスプローラから comhere.inf を選択し、右クリックメニューから「インストール」を選択する。インストールが完了すれば、エクスプローラで任意のディレクトリを選択したときの右クリックメニューに「DOS プロンプト@フォルダ(P)」が追加される。ここで「DOS プロンプト@フォルダ(P)」をクリックすると選択したディレクトリをカレントにして DOS プロンプトが開くようになる。

このツールをインストールすると、コントロールパネルの「アプリケーションの追加と削除」に「DOS プロンプト@フォルダ (Remove only)」と登録されるので、アンインストールしたいときはそこからおこなってほしい。

まとめ

無償配布版の bcc5.5.1 を使ってある程度実用的な開発環境が構築できたと思う。

問題と課題

使用上問題ないが、作業中にどうしても解決できなかった問題を挙げておく。解決方法がおわかりの方や情報をお持ちの方は著者へ連絡していただけると有り難い。結果は文書に反映させていきたいと思う。

  1. bcc32 の -E<filename> と -Tx オプションを使ってソース中の asm{ ... } をコンパイルできるのではないかと考えていたが、うまく行かない。nasm は呼び出されているようだが、エラーになっている。最悪でも呼び出し手順のハッキングと NASM のソースコードの修正で実現できることなのではあるが、著者のリソース不足でそこまで至っていない。
  2. 適当な、アプリケーションフレームワークとクラスライブラリが見つけられなかった。V++、WideStudio あたりが OS インディペンデントで好感触なのだが、今一つ決め手に欠けるような気がする。著者が 1 から構築するリソースもないので、さらに調査が必要と感じている。

 

関連情報

この文書を書くにあたって参考にさせていただいたサイトの URL を挙げる。

Borland C++ Compiler 5.5 サポート情報
ボーランド(株)の bcc5.5 のサポート情報ページ。使用上最低限必要な知識が書かれている。
URL: http://www.borland.co.jp/cppbuilder/freecompiler/devsupport.html - ボーランド(株)
Get started with Borland's free commandline tools
bcc5.5 のチュートリアル。Helmut Pharo さんのホームページ。
URL: http://www.pharo.onlinehome.de/Bcc55.html
vApp - The Borland C++ Compiler 5.5
オブジェクトセントラルの VIDE で bcc5.5 を使うためのガイドのページ。
URL: http://www.objectcentral.com/vide/help/videdoc/bcc32.html
Borland C++ Compiler 5.5 FAQ
bcc5.5 関連情報のポータルサイト的な有馬元嗣さんのページ。
URL: http://www.neco.nu/gohodoji/bccfaq.html - Gohodoji's WebSite
Borland C++ Compiler 5.5 Techniques
Mc.Nさんのページ。
URL: http://homepage1.nifty.com/mcn/dev/bccgogo/index.htm - Welcome to Mc.N Homepage! (Taro)
NASM マニュアル日本語訳
FreeDOS 日本語サイトで途中まで翻訳されている。翻訳協力者が現れてくれることに期待。
URL: http://guriponn.tripod.co.jp/others/japanise/nasmdoc0.html - FreeDOS 日本語サイト

 

その他

著作権表示

Copyright (c) 2001 Kazuo Miyamoto. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer as the first lines of this file unmodified.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY Kazuo Miyamoto ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Kazuo Miyamoto BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.