Version 1.5
リソースファイル
「じゃ、今回もプロジェクト内のファイルについて見ていこうか」
『はーい』
「というわけでこの前の続きのファイルから」
『えっとねー、この前は "FirstProject.plg" ってファイルを見たんだから、
今度は "FirstProject.rc" をドロップと……』
フォルダから "FirstProject.rc" がドロップされると、VC内にウィン
ドウが開きツリー形式で表示される。一番上には "FirstProject リソース"、
その下に "Dialog" "Icon" "Version" と並ぶ。
『ダイアログとかのが表示されたってことは、 "FirstProject.rc" の中に
そういうのの情報が入ってるってこと?』
「うん、そういうことになるね」
『あれ? このウィンドウって、前に【ワークスペース】として開いたのだ
よね』
「そうだよ。試しに一度閉じて、もう一度開いてみれば分かると思うよ」
『そうねー、えっと、まず閉じて……』
マウスカーソルが、そのウィンドウの右上の【x】をクリックし、ウィン
ドウが閉じる。
『次に、えーと、 1.2 の時には、確か【表示】−【ワークスペース】って
したのよね……』
マウスカーソルが【表示】−【ワークスペース】を選択する。先ほどのウィ
ンドウが再び表示される。
『ホントだー。前の時は【クラス】っていうのを見たんだよね』
ウィンドウ下の【ClassView】タブをクリックする。以前表示したクラス
のツリーが表示される。
「このワークスペースを使えば、プロジェクト内のいろんなファイルを簡単
に管理できるからね」
『そういえば前にそんなこと言ってたね』
「じゃ、さっきのタブに戻して、リソースについて見てみようか」
『さっきのタブ、と……』
下の【ResourceView】タブをクリックすると、ウィンドウに再び "Dialog"
などが表示される。
『あ、そういえばここに【ダイアログ】とか【アイコン】とか書いてあるね。
でも【リソース】ってなに?』
「リソースってのは【資源】っていう意味」
『資源?』
「ウィンドウズってさ、いろんなアプリケーションが同時に実行されている
でしょ。それぞれのアプリは好き勝手しているわけじゃなくて、ウィンドウ
ズから色々なものを借りて動作されているんだよ」
『色々なものって?』
「たとえばウィンドウとか、アイコンとかね」
『ウィンドウが借り物なの? だからウィンドウってどれも似てるんだ』
「そういう【借りるもの】をリソースって呼ぶわけ。いろんなアプリで、分
け合って使う資源だから」
『え? じゃあ資源が尽きちゃうこと、とかもあるの?』
「あるんだよね、これが。ま、普通はなくならないから大丈夫だけどね」
『へ〜』
「で、ここに表示されているダイアログやアイコンが、そういう類のもの」
『そういう類って?』
「ウィンドウズに登録して、そこから貸してもらうものってこと」
『何それ、私のもんなのにわざわざウィンドウズから借りなきゃいけないの?
めんどくさー』
「それは逆だよ。ダイアログやアイコンの表示って、直接プログラムしよう
とするとかなり大変なんだけど、それをウィンドウズが代わりにしてくれる
んだから」
『あ、楽になるんならオッケー』
「相変わらず変わり身が早い……」
『じゃーさ、とっとと色々見ていこうよ』
「まいっか。じゃあダイアログ見てみようか」
『はーい』
"Dialog" フォルダを開くと "IDD_FIRSTPROJECT_DIALOG" が表示される。
『なにこれ』
「これがダイアログの【名前】。最初の "ID" は "認証識別" っていう意味」
『<IDカード>とかの "ID" と同じ?』
「そういうこと! 鋭いねー」
『じゃあそのあとの "D" は "ダイアログ" って意味でしょ』
「そう! なんか今日は冴えてるね」
『<今日は>は余計だよぉ。で、そのあとがダイアログの名前ってことねー。
でも変な名前。これ、変えられる?』
「うっ、今はちょっと……変えると他の所も変えなきゃいけないから」
『ふーん、めんどくさいんだー。』
「それは言えるね。今までさ、いろんなファイル見てきたけど、そのほとん
どが<後ろから支えてくれるもの>だったでしょ」
『そうねー、プロジェクトとかワークスペーストか、その辺のファイル』
「そういう支えてくれるものって結構融通が効かないから、その点で自由に
ならない部分とかあってね、その辺が面倒だったりするんだわ」
『ってことは、このダイアログひとつにも、いろんなファイルが支えてくれ
てるってこと?』
「そういうこと。たとえば……このダイアログ、表示してみて」
『ダブルクリックでいいんだよね』
リソースビューの "IDD_FIRSTPROJECT_DIALOG" をダブルクリックする。
テキストエディタなどが表示されていた部分にダイアログが表示される。
『そうそう、これ、ダイアログエディタっていうんだよね、ボタンとか色々
変えられるんだよね、変えていい?』
「いいよ」
『ありがと〜!』
マウスカーソルが動きボタンの位置を移動させる。
『ボタンの名前変えるのってどうすればいいの?』
「右クリックメニューから【プロパティ】を選んで【キャプション】ってと
こを変えれば変わるよ」
『はーい』
"OK" ボタンを右クリックし、メニューから【プロパティ】を選ぶ。横長
のダイアログが開き、その右側にある【キャプション】の欄を "桶" に変え
る。
さらに "キャンセル" を "犬売" に、 "TODO:..." を "海馬" に変える。
さらにダイアログも同様の方法で "FirstProject" から "初謀" にする。
『ねーそういえば……って、何考え込んでんの?』
「……い、いやー、素晴らしいネーミングセンスだなと思って……」
『……う〜……』
「じゃ、じゃあ、ちゃんと変更されているか確認してみようか」
『確認?』
「ファイルダイアログで今の "FirstProject.rc" を【テキスト】モードで
開いてみて」
『同じファイルをいろんな方法で開くっていう、いつものパターンねー』
ファイルダイアログを開き、【用途】を【テキスト】にして、
"FirstProject.rc" を開く。< FirstProject.rc への変更を保存します
か?>というダイアログが表示される。
『あ、ダイアログ変えちゃったから、ファイルの方も書き換えられちゃった
んだ。<はい>でいいんだよね』
「うん」
マウスカーソルが<はい>を押すと、ダイアログが表示されていた部分が
テキストエディタに変わる。
『あれ? これが "FirstProject.rc" の中身なの? これってなんだかプ
ログラムみたい』
「そう、これは一種のプログラムなんだよ」
『一種って?』
「つまり、 "FirstProject.h" なんかの中にあったのとは、違う言語のプロ
グラムってこと」
『え〜?? ってことは、ってことはよ、これも全部マスターしなきゃいけ
ないの? めんどくさーっ!!』
「そんなことないよ。少しずつ下の方見てってみて。なんか気付かない?」
『気付くわけないじゃん、全然分かんないのに……ってほどでもないか』
中には日本語の部分や、 "Icon" など分かりやすい部分もある。
『あ、 "Dialog" も……あ、あ、あ、あ〜!!』
"Dialog" の下には理解できない文章が並んでいたが、その中には "桶" や
"犬売" など見慣れたものが並んでいた。
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//
IDD_FIRSTPROJECT_DIALOG DIALOGEX 0, 0, 214, 201
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_APPWINDOW
CAPTION "初謀"
FONT 9, "MS Pゴシック"
BEGIN
DEFPUSHBUTTON "桶",IDOK,157,7,50,14
PUSHBUTTON "犬売",IDCANCEL,157,23,50,14
LTEXT "海馬",IDC_STATIC,7,90,200,8
END
『もしかして、これがダイアログの正体ってことなの?』
「そういうこと。ダイアログエディタで変更した内容が、こういう文章で保
存されているわけ」
『へ〜……そういえば "犬売" ってボタンだったけど、その左に
"PUSHBUTTON" ってちゃんと書いてあるものねー。 "IDCANCEL" は、 "ID"
って書いてあるからダイアログのと同じ、IDってこと?』
「そういうこと。その右の数字は、ボタンの位置とサイズ」
『ねぇ、おーんなじこと、もーいちど言ってもいい?』
「いいよ」
『これ自分で書き換えるの? めんどくさーっ!』
「でもダイアログエディタで、簡単に分かりやすく変更できる」
『ってことなのねー。これも一種の裏方さんかなー』
「さて、ちょっと急いじゃおう! 次のファイル見るよ」
『え!? だってアイコン〜』
「アイコンは今度思う存分楽しませてあげるから。説明するのに時間かかる
し」
『ぶーぶー』
「はい、アメあげるから」
『食べれないもーん』
「じゃあ今度最新のデフラグツール入れてあげる」
『キャーッ、デフラグのマッサージってホント気持ちいいのよねー、ありが
とー!』
「じゃ、次のファイル見てみようか」
『……約束だかんね』
「はいはい」
『えと、次は "FirstProjectDlg.cpp" っと……ってこれって<プログラム>
が入ってるって言ってたよね』
"FirstProjectDlg.cpp" がドロップされる。テキストエディタが開き、
日本語混じりの英文が並ぶ。
「そう、これが<プログラム>。これはちゃんと理解できるようになんな
きゃダメだから」
『でもこれだけ分かればいい、ってことでしょ?』
「そういうこと」
『次も<プログラム>が入ったファイルよね』
"FirstProjectDlg.h" がドロップされる。 "FirstProjectDlg.cpp" と似
た文章が並ぶ。
『これにも<クラス>っていうものが入ってるの?』
「そ。つまり、プログラムはクラスの集まりでできてる、ってことだね」
『ふーん。次は…… "ReadMe.txt" って、普通<最新の注意事項>とかが書
かれてるファイルだよね』
"ReadMe.txt" がドロップされるとテキストウィンドウが開き日本語の文
章が表示される。
『あ、日本語だ〜、これなら書いてあること……分かんないよぉ……』
「一応この中には<各ファイルの概要説明>が書かれてるんだけど……たと
えば "FirstProjectDlg.dsp" についてはね、」
FirstProject.dsp
このファイル (プロジェクト ファイル) はプロジェクト レベルの情報
を含み、シングル プロジェクトまたはサブ プロジェクトのビルドに使
用されます。他のユーザーとプロジェクト ファイル (.dsp) を共有で
きますが、メイク ファイルはローカルにエクスポートしてください。
『何? 何を言ってるの? それ日本語? 水希ちゃんの説明の方がまだマ
シじゃない! ……ってゆーか……』
「ってゆーか?」
『……ま、このファイルが分かりにくいこと書いてあることは分かったから、
次見よ。えっと、次は "resource.h" ね……って、リソースって読めるね』
"resource.h" がドロップされる。テキストエディタが開き、シンプルな
文章が表示される。右側には数字の列。
『あ、真ん中の一番上、 "IDD_FIRSTPROJECT_DIALOG" って、最初に出てき
たダイアログのIDじゃない!』
「そうだよ。で、右に書いてあるのは実際の番号」
『番号?』
「ID番号ってところかな。要するに、出席番号みたいなもの」
『名前と番号ってことねー。でもなんで "FirstProject.rc" に書いてない
の?』
「このファイルの拡張子は?」
『 ".h" ってことは、プログラムのことが書いてあるのだよね』
「 "FirstProject.rc" は、ちゃんとしたプログラムとはちょっと違うから、
そのままじゃ使えないわけ。その間を取り持つファイル、ってところかな」
『なんか複雑ねー』
「確かにね」
『じゃ、次と。 "StdAfx.cpp" ってことは、これもプログラムが……あれ?』
"StdAfx.cpp" がドロップされる。テキストエディタが開くが、中身はほ
んの数行。
『何? これ』
「というわけで、謎を残したまま次回に続く!!」
/*
Preview Next Story!
*/
『今日は長かったね』
「長かったね……」
『…………』
「…………」
『…………』
「というわけで」
< Version 1.6 支えるファイル達 >
『につづく!!』
「来週はプロジェクト編最終回!」
『ここまで長かったね』
「長かったね」
『…………』
「…………」