Windowsプログラムを10倍簡単に作る

 ライフワークでプログラミングとしようとする方にとっては、今の時代は難しい時代である。パソコンの処理能力が向上し、OS も32bit化した現在、何の不自由があるかと思うが、肝心のプログラミングに関わる技術が安定していないのである。
 プログラミングに関わる新しい技術は、次々に生まれている。様々なプログラミング言語、様々なコンパイラ、様々なプログラミング手法、様々なソフトウェア形態が存在し、パソコンの処理能力向上により、それぞれが実用になっている。
 しかし、ライフワークのプログラミングを考えた場合、それら様々な技術が適当なものかというと、そうではない。コンパイラのバージョンアップにより、以前作ったプログラムが動かなくなったという話は昔からあった。それ以上に今問題なのはより本質的な問題であり、前提としていた言語レベル、OSレベルの技術が変わってしまうという問題である。コンパイラのバグを回避すれば済む問題ではなくなっているわけである。こうした不安定さが、今のプログラミングの大問題なのである。
 1995年、Windows95 が登場した頃に言われたのは、「Windows95 のプログラムを作るのは大変である、MS-DOSの数倍手間が掛かる」ということであった。それを仮に克服できたとしても、この不安定さはどうにもならない。
 プログラミング環境も複雑になり、コンパイラの膨大なマニュアル(説明書)を前にすると、個人ではプログラミングは手の出せないような感さえある。個人では、文字を扱うプログラムがいいところなのであろうか。パソコンがフルカラー高解像度の画像が扱えるようになったのに、皮肉な結果である。
 本書は、ライフワークでプログラミングをしている方のための 32bit Windows グラフィックス・プログラムの作り方を解説する。プログラム移植を考慮したグラフィックス・プログラムの解説である。
 Windows のグラフィックス・プログラムは GUI(図形による操作)を使うことになっているが、本書はその常識を覆し、非GUI の Windows グラフィックス・プログラムを作る。GUI を使わないため、プログラム開発に数倍手間が掛かることはない。
 本書は、従来の Windowsプログラミング手法を分解し、非GUIプログラムでも、ウィンドウを開きグラフィックスが扱えるようにしている。ウィンドウが隠れた場合の対処も自動的に出来るようにしている。
 点を打つ, 線を引く, 円を描く, 文字を表示すると言った基本的なグラフィックスを簡単に行えるように、点を打つ関数(pset関数(p.166)), 線を引く関数(line関数(p.180)), 円を描く関数(circle関数(p.207)), 文字を表示する関数(symbol関数(p.213))と言った基本的な各事項を使いやすい形で 1つの関数にまとめているため、1つの関数を呼び出せばやりたいことがすぐ出来る。
 その関数は、ソース・レベル・リンク・システム(Source level Link System; \rb{SLS}{エスエルエス})という、ソース・レベルでのプログラムの部品化を達成したシステムで書かれているため、コンパイルの際にはいちいち C/C++コンパイラに指示したり、makeファイルを作る必要さえない。1個のソース・ファイルをコンパイルするだけで自動的にリンクが解決し、実行プログラムが出来る。もちろん、コンパイラの種別は問わない。使用するコンパイラは GUI型のコンパイラ(統合開発環境IDE)ではなく、コマンドライン・コンパイラを使用するので、覚えることは最小で済む。 つまり、書名の『10倍簡単』は後から付いた名前だけのものではなく、本書の前身である『Windows95プログラムを10倍簡単に作る[C言語版]』(1996年(平成8年)4月20日、共立出版(株)発行)執筆当初から10倍簡単を目指していたわけである。本書で扱う事柄は Windows95プログラミングの基本である。そのため、C言語を使用している。姉妹編の『Windowsプログラムを10倍強力に作る[95/98/NT対応C++版]』では C++ を使用し、より踏み込んで解説している。
 MS-DOS や UNIX で作った多くのプログラムを抱え、これをより強力なものにしたい場合は、まずは本書に従ってそのまま 32bit Windows に移植するとよい。一通りの移植が出来たなら、姉妹編に従って徐々に拡張すればよいだろう。
 本書は、TeX(テフ)というコンピューター組版言語システムを使用し、筆者自らが版下作成まで行った。TeX が LaTeX2ε という新しいシステムに変わり、TeX で画像が扱えるようになり、従来に比べ格段にきれいな仕上がりとなった。
 本書の出版にあたっては、共立出版(株)の坂野一寿さんに大変お世話になった。印刷所の(株)加藤文明社の原田吉雄さんには、LaTeX2ε についていろいろ教えて頂いた。また、妻の里美には難しい話を良く聞いて頂き、分かりやすくて かわいいイラストを描いてもらった。
 本書で使用する C/C++ の用語は『ANSI C/C++辞典』(平成8年1月25日共立出版発行, 定価6,695円(本体6,500円), ISBN4-320-02797-3 C3541)に準じているので、不明の点は参照していただきたい。


 平成11年(1999年)6月10日

Hirabayashi Masahide
平林 雅英   



※本書は『Windows95プログラムを10倍簡単に作る[C言語版]』(1996年(平成8年)4月20日、共立出版(株)発行)を最新の 32bit Windows 環境に合わせて改訂増補したものです。

※本書の版下は著者自身が日本語 LaTeXε(pLaTeXε)で組版し、(株)加藤文明社が PostScriptイメージセッタにより面付フィルム出力したものです。


続刊『Windowsプログラムを10倍強力に作る[95/98/NT対応C++版]』序文