[[BORLAND C++]]
INDEX
はじめに
  • 乗り遅れた男…
    何を隠そう、自分は32ビットの波に乗り遅れた奴なのである。いや、正直に言えば、Windowsプログラミングの波に乗り遅れたと言うべきか??自分がWindowsのプログラムを組んだのは、1997年の春頃,即ちWindows95が日本で発売されたて一年位,MicroSoft C/C++7.0でのプログラムが初めてだった。それまで、Cプログラムに慣れてしまっていた自分にとって、C++の仕様は、なんとなくでも理解出来たのであるが、MSC++による、Windowsのプログラムの難解さには、少々面食らってしまったのである。まず、main関数(WinMain)が書けなかった事,イベントハンドラ部分が、もはやC言語では無かった事,リソースの概念が掴めなかった事等々,今から思えば、自分をWindowsプログラムから遠ざける要素がてんこ盛りだったのである…。(MFC[Microsoft Foundation Class]はそれなりに使えたが),とにかく、一筋縄では行かないぞ!と考えた自分は、Visual C++,Borland C++ Builder等のいわゆるビジュアル環境という環境の導入を試みたのである。確かに、プログラミングは非常に簡単に出来た。しかしながら、サンプル等を改造して造るプログラムには限界が有る。何とかしようとして、少々踏み込もうとすると、また、あの難解なプログラムと睨めっこしなければならなくなるのだ。その上、一番理解したい部分をマスクされてしまっているのだから、かゆい所に手が届かない様で、どうも気持ちが悪い…。

  • 居心地の良い場所を捨てて…
    そんなこんなで、1年前位までは、Turbo-C 2.0+PC9801シリーズという開発環境を現役で使っていたのである。(自分が大学時代から使っている環境だから、確かに化石だな…)だが、馬鹿にする事なかれ!シリアルは、ストレス無く通るし、C-BUSを使って、パラレルでコントロールボード造ったりと、実験室で使うツール程度の開発には、全然問題の無い環境だったのである。しかも、ハードに直接アクセスするとか、BIOSを使うなどという事を避ければ、現行のPC(PCAT互換機)のDOS窓でも充分使えるのだ。(実は、ちょっとしたデータ構造の解析等には、未だに現役で使っていたりする)
    しか〜し!現実はそんなに甘くないのだ。自分の周りに、まだまだ有ると思っていたPC98シリーズが、去年頃から壊れ始めたのだ。デスクのPCは、以前からだから諦めていたが、実験室の環境も、見回せばPCAT互換機ばかりだ。そうなると、シリアルポートは簡単に使えなくなるし、ファイル名は長く(そんなの、ず〜〜っと前からだ)なるし、居心地の良い、ぬるま湯環境は、序々に崩壊を始めるのだった。

  • 選択
    これにはさすがに焦ったね〜。今まで、実験室で、当たり前の様に動作していた。自分のツールが、どんどん使われなくなっていくんだからね。てな訳で、真剣に考えた訳だ!C++の講義も聞いた。しかも「C++概要」いまさら「概要」?って気もしたけど、行き詰まった時は、こういうのが結構役に立つのだ。VBやDelphiって選択肢も有ったけど、自分はやっぱりCかな??って思ったのさ。C#ってのもあるけど、MicrosoftのC++は、使い難いのが分かっていたから、Borlandにターゲットをしぼったのだ。ほぼ100%、C++Builderに的を絞った所で、ちょっとまてよ…って気になった。どうせWindowsプログラムを造るなら、WinMainから書きたいし、クラスライブラリに頼らず、WindowsのAPIも触ってみたい。リソースの意味も理解したいし…。結局,実験室のツールなら、Borland C/C++ 5.51(以降、BC++)でも、充分使えるな…と。それに、有る程度のツールならば、コンソールプログラムでも間に合うし、無料だし(実は、これが重要)と, とりあえず、インストールしてみよう!って思ったのさ。
    逆に考えてみよう。C++Builderで書いたソースは、BC++でコンパイル出来ない可能性が有るが、BC++で書いたソースは、多分C++Builderでコンパイル出来る筈なのである。ならば、今後、C++Builderを投入した場合にも、現行のソースが使える筈ではないか?この辺を考慮して、BC++を選択した。

Windowsを味方につける
C言語にどっぷり浸かったプログラマにとって、Windowsは攻略すべき「敵」であり、難航不落な要塞の様にも感じるかも知れない。しかし、幾つかの困難な壁を乗り越えると、Windowsは、いつの間にか味方に付いてくれている事に気付くだろう。それまでは、あれほど理解に苦労していたクラスが「便利な道具」に変わると、GUIが手に取る様に、すらすらと構築出来て行くのである。それは、プログラムをしているというより、部品を配置して組み立てる…というイメージだ。ともかく、Windowsを味方に付ければ、かなり頼もしいのだ。ユーザインタフェイスは、殆ど設計しなくて良いのだから。例えば、ボタンを使いたければ、こんなボタンをここに置く,押されたら、こんなメッセージイベントが発生し、どんな動作をするかを記述する…という具合だ。自分は、以前にMS-DOSで、ボタン等を表示して動作するソフトを書いた事があるが、ボタン一つ,表示するのにも、パレットを決める、背景に傷を付けない様に、VRAMにデータを転送し、マウス操作をモニタし…等と、とても他の作業を入れる余地の無い程複雑なプログラムになってしまった記憶がある。
ともかくも、Windowsを味方に付ける事。これが出来れば、この企画の目的は、ほぼ達成したと思っても良いのだ。この為に、Visual開発環境を使うというのは、ある意味賢い選択だと言えるだろう。しかしながら、それはあくまでも、深い理解を伴わない味方でしか無いとは言えないだろうか?いつか、システムに裏切られる気がしてしまうのだ。自分が、この企画で語りたい事は、システムを深く理解する事により、Windowsを、長く付き合える友達の様な味方に変える事なのだ。その為には、WinMainが自分で書ける環境が必須であり、BC++というプラットホームを選んだ理由の一つでもあるのだ。
2002/03/27
HomeSweetHome2
Ozzy's Software