コンパイルという作業
(以下は文章的ですが説明を含んでいます)
わたくし自身はコンパイルという言葉が意味がわかりませんでした。ソフトウェアとか、アプリケーションとか、インストールって更に何?[説明]とか。アプリケーションなんかとくに、プログラムを作る側の言葉なのではないか、といまさらに思います。書いたプログラムはコンパイルして、出来上がったものはぜんぶアプリケーションです。コンパイルは、「作業」と聞くからあまり気持ちよく響かないけれども、実行ファイル( 実行ファイルとは、主に .exe ファイル のこと) を走らせるだけですから。走らせるというのは、命令一本(一行)です。コンパイラではなく、それでは、試しに、notepad または、notepad.exe と入れてみましょう。ノートパッドが起動できました(=走らせました)。あとはなにができるだろう...?C:\Windows フォルダ にある「実行ファイル (.exe) ファイル」だったらどれでも実行できるはずです。但しむやみに実行してはいけません!少し話が飛びましたが、要するにこれと同じ要領で、notepad.exe ではなくて ( 代わりに)、bcc32.exe というアプリケーション(ソフトウェアでありコンパイラ)を走らせることをコンパイル作業と言っているに過ぎません。もちろん命令1本で。(見るのが一番分かりやすい↓)。ここでは直接は関係のないことですが、このウィンドウに出会うことになったら、コンピュータはもともとはこのウィンドウが画面いっぱいに広がった、いかにもコンピュータらしい、一度に一つのことだけをするのが一応基本的な、「コンソール画面」だったということも、そしてウィンドウズやマックは画期的にそれを違うものにしたものなのだ、ということも考え出してみる頃合です。そうそう、explorer . [リターン] とすればフォルダも表示できます。これは便利な知識です。(explorer.exe もやっぱりコマンドライン引数を受け取る、同じ実行ファイルの仲間だということです。)
パソコンを前にして何ができる、の答えはつまるところ、(外部)ソフトウェアの実行か、システム命令の2つだけなんだ、ということを覚えておいてください。しかも、これらの対比をもう少しきれいに収めたかったら、システム命令とは言っても、これも「ウィンドウズというソフト」内の命令であることに気づくはずです。ソフトソフト、ときて結局は外部と内部、とにきれいに分けることができます。考えるときりがないのですが、外部ソフトの実行には華がありますが、システム命令の中ではおそらくユーザが一番興味を持てるのは、せいぜいファイル管理、Disk Operation なのです。そう考えていくと、たかだかそれだけのことをするもので、なんだかつまらない部分もあるのですが、MS-DOS の、DOS は Disk Operating System の略であって、もともとはそれだけで、そこから、GUI、API、エミュレーション、・・・と、開発者の端くれとしてのわたくしには、なんとなく Windows の発展と意義に関して察しがついてくるのでした・・・。
ここまできちんと読んで、つまらないと感じるのは、正常な神経の持ち主です。ただ、Windows Programming は、やっているとおもしろいので、それを超える魅力があることを付け加えておきます。
さて、以下は、論より証拠です。
さて、プログラムはもう書きました。[どんな様子か確認する](プログラムの話はCやAPI の話なのでここでは飛ばします。)書いたとして、ファイルに保存したと仮定します。ファイル名は test.txt 。(作業その1: 拡張子は本当は何でも良いことを示すために .txt としています。通常は .c や、 .cpp にします。)
1つめのステップは終了です。
次に、
←これの出し方だけ教えて欲しい。
とします。たった一回の入力に過ぎません。これでもう、完成しました。(作業その2 : test.exe が出来上がります。test.exe と打ち込むことで実行できます。)2つめのステップ終了。
心の叫び1 「え...2ステップじゃん」
心の叫び2 「じゃあもうプログラムさえ書けばいいダケじゃないか」
( ちょっと疲れが出たようです...)
コンパイルとコンパイラ
この、その2の作業を「コンパイル」と言います。コンパイラは、ソースファイルから、実行ファイル(.exe) を生成、generate してくれました。あとは、その実行ファイルを起動して、そのアプリケーションを実際に使用、利用、活用するだけです。コンパイラが実際に処理している複雑なことを抜きにすると、説明はこれだけになります。が、コンパイルはコンパイラがやってくれたことで厳密には私たちがコンパイルしたわけではない・・・。けれども、「私が、あなたが、コンパイルする」と、やっぱり確かに普通に言うわけです。そのあたりが厳密な説明をしようとするすると言葉遣いに苦しむ難しいところです。(余談)
上の画面の bcc32 というのは、「コンパイラ」というソフトウェア(あるいはアプリケーションでもあります)ですが、Windows に標準装備、というわけではありません。本当にコンピュータを 0からやりたかったらコンパイラもつくるのがすじです。このホームページのタイトルが「ほとんど 全くゼロから」 となっているのはそのためです。よほど特別な事情の人でないかぎり普通はコンパイラ作りからはやりません。ということで、さすがにコンパイラだけは自分でつくらず無料のもの ( これはしかも、すごい コンパイラです。)を利用させてもらいましょう。このコンパイラの利用価値と、無料であることとは本当にミスマッチです。「ただほど高いもの」に手の出る勇気のある人は手に入れてください。
さて、コンパイラを入手したらすぐにでもコンパイル、というわけにはいきません。コンパイラを入手したら、実際に使えるようにするのに1つ2つ作業があります。
コンパイラの入手
コンパイラを入手したら...
さっそくコンパイル
の3篇です。本当に面白いのはこの後です。さっさと済ませてしまいましょう。どうぞ。
(ただし、慣れない言葉にさんざん翻弄されて疲れたときは十分な休息をお勧めします。また、子供の人はよく遊んでください)
以上のことが済むと、Windows Programming の準備は完了です。さっさとプログラムを組みたい場合は、ネット上にはコードサンプルがたくさんあるので、それを探す冒険のたびに出てもだいじょうぶです。あぁ、WINVER と、...