
/*
    KAB-studio.h
        　ＫＡＢ−ｓｔｕｄｉｏで先週更新した内容
        が格納されたヘッダーファイルです（笑）。

    (C)KAB-studio ALL RIGHTS RESERVED.
        http://www2.justnet.ne.jp/~kabstudio/
        kab-studio@multimedia.design.co.jp

    送信日： 1999/05/10(Mon) No.006
    配信数： 1900（ Mag2 + Pubzine ）
*/


/*            １９９９年５月１０日の更新                */

・表紙を５月バージョンに！！：
　毎月恒例、新しい表紙の登場です！！　今回はさらに会社で見づらい表
紙（爆）です。セクハラで訴えられないよう注意しましょう（おいおい）。
　このイラストの作り方はチョー普通な日記５月９日をご覧ください。

・「鏑矢正伝について」を更新：
　作者についての情報が載っている「鏑矢正伝について」をちょっと更新。
「筆者の装備」をイラスト入りにしました。あと「５０問５０答」というペー
ジも作ったんですが……現在作りかけ（汗）。
 


/*                チョー普通な日記                */

１９９９年５月２日（日）：
　その週の更新とか来月の表紙とかＮスペ・遺伝子とか。


１９９９年５月３日（月）：
　がびーん、ＥＲ録れ忘れる。そして、心の支えとピアノの語り２本立て。


１９９９年５月４日（火）：
　トサキント。手製のカレンダー。そしてＮスペ・遺伝子。


１９９９年５月５日（水）：
　表紙の歴史。そしてＮスペ・遺伝子。


１９９９年５月６日（木）：
　立川中華街で美味しいシャオロンポウを食べたという話。


１９９９年５月７日（金）：
　某梅干し屋さんのホームページとかとか。


１９９９年５月８日（土）：
　とにかく働きづめという話。あとカウンターを変えたとか、先輩
のからのツッコミとか。ふぅ。



/*                    金菜さんの憂鬱                        */

１９９９年５月２日（日）：
ストリーム関係のテスト
今週のＣｏｄｉａｎの更新内容：コンストラクタの後編
辞書に単語を追加
ＫＴＬの更新はなし


１９９９年５月３日（月）：
ダイアログコントロールとデータのやりとりをするクラスが完成
マップを持つ CDlgCtrlManager がベース
コントロールのＩＤをキーに「プロキシークラス」のポインタをセット
仮想関数を CDlgCtrlProxy クラステンプレートでオーバーライド
「コントロールと変数とのデータ変換」と多重継承
現在はエディットコントロール用のクラスのみ
LPTSTR や std::string 、 int を受け取れる
const 付きのとナシのとの両方を作成


１９９９年５月４日（火）：
お休み


１９９９年５月５日（水）：
ＫＴＬのサンプル KTLSDK02 をコピーして KTLSDK03 を作成
ダイアログにもウィンドウにも使えるプロシージャクラス
「メッセージマネジメントシステム」を残すべきかどうか
ひとつのクラスでふたつ以上ウィンドウが表示できない
残して置くけど、サンプルでは使わないことに


１９９９年５月６日（木）：
std::cin のエラー処理
std::cin.clear() だけじゃダメ
std::cin 内部のポインタの関係
std::cin.ignore() 
FILE 構造体は内部にバッファがある
std::cin の「バッファへのポインタ」が FILE 内のバッファを示している
エラー処理は std::strstream に渡してから処理するとか
std::cin.width() オーバーランを防げる


１９９９年５月７日（金）：
プロシージャクラスがほぼ完成
CGlobalProcManager に比べてシンプルで分かりやすい
static メンバ関数から普通のメンバ関数を呼び出す
ポインタを経由するから public のメンバ関数しか呼び出せない
サンプルコード
クラステンプレートと friend 指定を組み合わせる
問題はすべての private メンバ関数が呼び出せること
friend のあとに class を付けるとエラー


１９９９年５月８日（土）：
ＫＴＬは来週月曜の更新は無理
前から描いていたライブラリが作られつつある
うちかぶやたすかぶもバージョンアップできるようになる
うちかぶやたすかぶはソースコードを公開する予定



/*                    #pragma twice                        */


　Version 1.3
プロジェクトとワークスペース


「じゃ、前回の続き」
『この前はプロジェクトフォルダの中を探検してて、"FirstProject.dsp" 
まで見たんだよね。あと "FirstProject.h" とか "FirstProject.cpp" とか
も見たけど』
「今回はその続きだから、 "FirstProject.dsw" 開いてみようか。あ、その
前に、プロジェクトを閉じてみて」
『プロジェクトを閉じるって？』
「タイトルバーを見てみて」
　最大化されたウィンドウのタイトルバーには "FirstProject - Microsoft
 Visual C++" と書かれている。
『あ、 "FirstProject" って、この前作ったプロジェクトの名前だよね。っ
てことは、それを今開いているってことなんだ』
「そういうこと」
『でも、開いているとどうなるの？』
「じゃ、この状態で "FirstProject.dsw" をドロップしてみる？」
　マウスカーソルが動き、フォルダからＶＣへと "FirstProject.dsw" をド
ロップする。
　が、何も起こらない。
『……何も起きないね。バイナリーエディタも開かないし、テキストエディ
タも。なんで？』
「じゃ、今度はプロジェクトを閉じてからドロップしてみようか。【ファイ
ル】−【ワークスペースを閉じる】を選んでみて」
『＜プロジェクト＞と＜ワークスペース＞って同じものなの？』
「ほぼ同じもの」
『ほぼぉ！？』
「いやあのっ、えっとねー、＜プロジェクト＞は＜企画＞、＜ワークスペー
ス＞は＜仕事場＞でしょ。＜企画＞だけじゃ物事は進まないわけで、その
＜企画＞を管理して実行するのが＜仕事場＞の役目。だから、＜企画＞を
作ると必ず＜仕事場＞も作られるわけ」
『だから同じ、なわけね』
「でも、＜仕事場＞がひとつでも、複数の＜企画＞を抱えていることもある
でしょ。それと同じように、＜ワークスペース＞にもいくつもの＜プロジェ
クト＞を持たせることができるってこと」
『この "FirstProject" の場合、＜ワークスペース＞の中に＜プロジェクト＞
がひとつしかないから＜同じ＞、ってことねー。でもなんでＶＣは＜ワーク
スペース＞単位で処理するの？』
「ＶＣは、自動的に＜ワークスペース＞内のすべての＜プロジェクト＞を実
行してくれるから」
『ってことは、＜プロジェクト＞がみっつあったら、いっぺんにみっつアプ
リが作れちゃうってこと？　便利ねー』
「アプリとは限らないけど、そういうこと。でも当分は＜プロジェクト＞と
＜ワークスペース＞は一対一の関係」
『うん、その方がいいかな、なんかいっぱい出てきても分かりにくいと思う
し。で、なんだっけ』
「ワークスペースを閉じるんだってば」
『あ、そうそう』
　ドロップダウンメニューから【ワークスペースを閉じる】を選ぶ。
【ClassView】の中身が単色表示され、タイトルバーは "Microsoft Visual 
C++" だけになる。
『はっ！！　危うく水希ちゃんの甘いマスクに騙されるところだったわっ！』
「えっ、な、何をいきなり」
『この前見た【ClassView】とかのあったウィンドウ、あれも＜ワークスペー
ス＞って言ってたじゃない！』
　勝手にマウスカーソルが動き、メニューの【表示】−【ワークスペース】
を選択状態にする。
「そだよ」
『そだよって何よその素知らぬ顔してばばんばーんみたいなセリフは』
「古い歌知ってるねー……じゃーさ、そのとき表示した【ClassView】の一
番上になんて書いてあったか憶えてる？」
『えーと……まぐまぐのＵＲＬってなんだっけ』
「バックナンバー見んとわからんのかい！！　"FirstProject クラス"って
書いてあったでしょ」
『そうだっけぇ』
「ま、あとでまた見ればいいや。この【ClassView】とかのタブがあるウィ
ンドウも＜ワークスペース＞って呼ぶの。これを使うと、ワークスペース内
のファイルや、他のプロジェクトのファイルとかも一括して管理できるわけ。
分かったかな？」
『はぁい……』
「ま、疑問を持つことは悪いことじゃないから」
『そーよねー』
　睨み付ける水希。目をそらす火美ちゃん。
『今度可動式のＣＣＤカメラ付けてね』
「ヤダ。って、あ〜また話が続かなくなっちゃった」
『 "FirstProject.dsw" をドロップするんでしょ』
「分かってるならする！」
『はいはい』
　フォルダから "FirstProject.dsw" がドロップされる。タイトルバーが
 "FirstProject - Microsoft Visual C++" に戻り、ワークスペースウィン
ドウの【ClassView】の中身も復活する。表示内容は先ほどと同じ、
"FirstProject クラス" 、 "CFirstProjectApp" 、 "CFirstProjectDlg" が
ツリー形式になっている。
『あ、元に戻った』
「つまり、ワークスペースを開いているときにドロップしたら、何も起きな
い。ワークスペースを閉じてからドロップしたら、ワークスペースが開いた。
ってことは？」
『ってことはー……ワークスペースそのもののファイルってこと？』
「正解！」
『キャーッうれしーっ！！』
「そういうこと。ま、拡張子の ".dsw" の "w" は "WorkSpace" の "w" って
思えば間違いないかな」
『あ、なるほどね』
「んじゃもうちょっとこのファイルについて見てみようか」
『見てみるって？』
「どういうことだと思う？」
『そうねー、この前の "FirstProject.dsp" の時は、ドロップしてもダメで、
代わりにファイルダイアログ開いて【テキスト】で開いたんだよね。それと
同じことするとか』
「ＯＫ！！　分かってるじゃない」
『そうでしょそうでしょー』
「んじゃ、やってみようか。憶えてる？」
『……まぐまぐのＵＲＬって』
「それはええて！　んじゃもう一度。メニューの【ファイル】−【開く】の
ダイアログを開いて」
　ファイルダイアログが開く。
『あ、思い出したかも。【ワークスペースファイル】としてじゃなく【テキ
ストファイル】として開くから【用途】を【テキスト】にして、あ、
 "FirstProject.dsw" が表示されてないから【ファイルの種類】を【すべて
 のファイル】にして、選択して、【開く】を押してと……』
　 "FirstProject.dsw" の中身がテキストファイルとして表示される。上か
ら２行目までには日本語が、その下の行には "#" が並ぶ行や "{{{" しかな
い行がある。
『……なんかハズレっぽいねー。なんかあるとしたら、

Project: "FirstProject"=.\FirstProject.dsp - Package Owner=<4>

って行かなー。……って、 "FirstProject.dsp" って書いてあるね』
「 "FirstProject.dsp" がどんなファイルだったか憶えてる？」
『まぐまぐのＵＲＬって』
「しつこいっ！」
『確か、 "Cl.exe" っていうアプリが＜コンパイル＞するとか、その設定を
変える＜スイッチ＞とか、＜コンパイル＞するファイルとかが書かれてるん
だよね』
「そうそう、憶えてるじゃない」
『これは結構印象深いのよねー。ね、ふと思ったんだけど、もしかしてこの
".dsp" のファイルが＜プロジェクト＞のファイルで、 ".dsw" のファイル
が＜ワークスペース＞のファイルなんじゃない？』
「ど、どーして？」
『 ".dsp" の "p" って "Project" の "p" っぽいし、さっき＜ワークスペー
スの中にプロジェクトがある＞って言ってたでしょ、それって
 "FirstProject.dsw" の中身にそのまま一致するかなって』
「そのとおりっ！！　分かってきたじゃない！！」
『そうかなそうかな、やっぱそうかな。とりあえずプロジェクトとかワーク
スペースとか、その辺結構分かってきたかも』
「だからってプログラム組めるわけじゃないんだけどね」
『ガーン』
「あ、あとさ」
『ドキ、なんかまた釘を刺そうとしてるんでしょー』
「違うって。今みたいな＜ふと思ったんだけど＞って、実は結構大切なんだ
よ。これまでは＜正解！＞って僕が言ったのだけを試してたけど、そういう
の関係なく色々と試すことが、ホントは大事だから」
『つまり＜するとか？＞とか訊く前に勝手にしちゃえばいいってこと？』
「そういうこと。そういうのを色々試すのが、プログラミング上達の秘訣か
な。この講座は、そういう＜やる気＞を出すための加速器ってところかも」
『だったらあんまけなさないで、もっと褒めてよね〜』
「はいはい。というわけで、つづく！！」



/*
    Preview Next Story!
*/
『プロジェクトやワークスペースって、なんか働き者って感じ』
「目立つ存在じゃないからねー。でも、もっと目立たない裏方さんもいたり」
『へー』
「というわけで」
＜ Version 1.4 ワークスペースの裏方さん ＞
『につづく！！』
「次回はさらに地味〜にいくから」
『つまんなそー』
「つまんないかも」
『……』



/*            １９９９年５月１７日の更新予定                */

・「ＫＴＬ」改変：
　ＫＴＬを更新します。ウィンドウ＆ダイアログプロシージャ関係のクラス
と、ダイアログコントロールとメンバ関数とのやりとりを行うクラスを追加
します。



/*                        ご注意！！                        */
/*

　このメールマガジンをそのまま「返信」すると、作者のメールアドレス
（kab-studio@multimedia.design.co.jp）へと転送される仕組みになってい
ます。「まぐまぐ」もしくは「Ｐｕｂｚｉｎｅ」の管理者へメールを送りた
い場合には、直接そちらへメールを送ってください。

*/
/*

　このメールマガジンの購読登録を解除する場合には

http://www2.justnet.ne.jp/~kabstudio/Info/MailMagazine/start.html

　が便利です。また、購読解除についての詳しい情報は、
登録時に送られてきた「まぐまぐ」もしくは「Ｐｕｂｚｉｎｅ」からの
メールをお読みください。

*/
/*

　本誌のバックナンバーはホームページ上にはありません。まぐまぐの

http://bigbeat.tegami.com/~mgsearch/frame.cgi?id=0000012198

　にありますのでそちらをどうぞ。

*/
/*

　このメールマガジンは、
まぐまぐ
Ｐｕｂｚｉｎｅ
　を通して発行されました。

*/
/*
    KAB-studio.h
    Weekly Mail Magazine.
    Written by Kaburaya Seiden.

    (C)KAB-studio ALL RIGHTS RESERVED.
        http://www2.justnet.ne.jp/~kabstudio/
        kab-studio@multimedia.design.co.jp
*/


/*                    See you next week!!                    */


