まずは、ざーーっとページをめくって、本書がどんな構成になっているのかを見ます。

決して、立ち止まって本文を読んだりしないでください。



「あれっ!?全部で12章まであるぞ!1日1章ずつ読んでも1週間じゃ読み切れないよ」

はい。まじめに読んでると1週間で読み切るには、ちょっと分量が多いですね。

そこは、それ手抜きですよ。全ページくまなく読む必要はないんですよ。とりあえずはね。

練習問題も、全問できなければ次の章に行ってはいけないというものでもありません。 中には、結構難しい問題も含まれています。

第1日目にやることは、

1.CDについている、サンプルのプログラム(sample01.cpp)をHDDにコピーして
  Windowsのプログラムを作ることができる
2.printfとかscanf関数のように標準入出力関係の関数は使えないことを知る
3.変なデータ型が出てきても驚かない
4.構造体がtypedefしてある時の扱いに慣れる
5.WindowsのプログラムはWinMain関数から始まる(main関数は無い)
6.CALLBACK関数という特別な関数がある
たったこれだけです。特に、C言語等のプログラミングをしたことのある人にとって1.は問題ないですね。VC++であれば、プロジェクトの設定をWindows Applicationにすればよいですね。コンソール・アプリケーションをプロジェクトを組まずに、作っていた人は要注意です。VC++では、プロジェクトを組まずに、いきなりソースをコンパイルするとコンソールアプリケーションの設定でコンパイルされます。コンソールアプリケーションのソースを書いていた時は、これで何も問題が起こらなかったはずです。でも、Windowsのプログラムはきちんとプロジェクトを組まなくてはうまくいきません。

BCCの人は-Wオプションを付けてください。

それと、大事なことはGUIのプログラムでは、標準出力とか標準入力などの概念はありません。printf関数は使えません。(C言語で最初に行うのは多分printf関数で画面に文字列を出力することでした。この関数が使えないということで、ショックを受ける人も少なくありません。でも、恐ろしいもので人間は新しい環境にすぐに慣れてしまうんです。)

HINSTANCE hInst;
と、いうような今までに見たこともないソースが出てきても、

「何じゃ、コリャーー!?」 (「太陽にほえろ」の有名な1シーン)

などと言わないでください。単にこーーいうデータ型があるんだなーー、と思ってください。

int i;
と、書いてあっても驚きませんね。これと同じで、単にHINSTANCE型の変数hInstを宣言しただけです。 Hで始まるデータ型は、ほとんどの場合、「何とかハンドル」とよばれる、符号無し整数値です。
WNDCLASSEX wc;
これも、慣れないうちはしっくりしないかもしれません。どこかのヘッダファイルで
typedef struct _WNDCLASSEX { 
    ナンタラ、カンタラ
} WNDCLASSEX, *PWNDCLASSEX; 

とtypedefしているだけなんです。もし、構造体の知識があやふやでしたら、今のうちにしっかり復習しておいてください。(特に構造体を指しているポインタなんかをね)

あと、Windowsのプログラムではmain関数は使いません。もし、コンパイラが

main関数が、どうした、こうした
という文句を言ったら、それはプロジェクトの設定がコンソールアプリケーションになっているのです。

sample01.cppについては現段階で、その他の細かいことは理解する必要はありません。

ほとんどの場合、sample01.cppに書いてあるプログラムはそのまま流用できます。

このプログラムは、単にウィンドウを作るだけです。これに、文字を表示したり、その他いろいろな機能を付け足すには、ウィンドウ・プローシジャと呼ばれるCALLBACK関数にプログラムを書き足していきます。いわゆる「メッセージ処理」というやつです。今は、意味がわからなくても気にしないでください。

はい、これで第1日の終了です。少なくとも、ひな形のプログラム(sample01.cpp)を、ぱっと作れるようにしておいてください。ごちゃ、ごちゃ設定をいじったりしないでください。


08/Feb/2004 By Y.Kumei
[目次に戻る][第2日]