////////////////////////////////////////////////////////////////////
/*

    KAB-studio.h


    (C)KAB-studio 1999 - 2002 ALL RIGHTS RESERVED.
        http://www.kab-studio.com/
        info@kab-studio.com

    送信日： 2002/09/23(Mon) No.175
    配信数： 3640 ( Mag2 + Pubzine )
＊    発行元： まぐまぐ ( URL: http://www.mag2.com/  ID: 0000012198 )
＊    発行元： Pubzine ( URL: http://www.pubzine.com/  ID: 590 )
*/
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
/*                ２００２年９月２３日（月）の更新                */
http://www.kab-studio.com/

・ほとはー３の３追加！
　三人合体ホットハーブに３の３を追加しました。ほとはーは皆さんの声に
お答えします。
[ 三人合体ホットハーブ ]
http://www.kab-studio.com/Comic/HotHerb/


////////////////////////////////////////////////////////////////////
/*                        チョー普通な日記                        */
http://www.kab-studio.com/nikki2/

2002/09/15 (Sun)
　午前中はほとはー描き。午後からお仕事。同じ本を２冊買う。テレビは
だぁ！だぁ！だぁ！がいい感じ。

2002/09/16 (Mon)
　午前中は洗濯。午後からお仕事。ひたすらデバッグ。帰りに DTP WORLD 
買ったりとか。マクドのバリューセットはお得。猫アレルギー……。

2002/09/17 (Tue)
　リズム狂いまくり。お仕事は雑用。縦帆船って揚力とは関係ない？　ほと
はー３の３を一気に。実はほとはーは下描き１回だけ。よく描けてるなぁ。
今なら下描き原寸大が見られます。

2002/09/18 (Wed)
　お仕事はリリースビルドだと動かないのの。午後は不具合で急遽客先へ。
帰りにマンガ用原稿用紙購入。あさってに秋葉原行ってきます。自作はする
気ないんよ。ＤＶＤドライブ買うかも？

2002/09/19 (Thu)
　今朝は起きるの辛かった。お仕事は昨日のの解決。自作ライブラリって難
しいね。銃夢３巻いい感じ。テレビは藍より青しがいい感じ。

2002/09/20 (Fri)
　お仕事は来週の準備。そのあと秋葉原へ。新しいＰＣの見積もりを作成。
２週間後に届くそうな。 Air 初回限定版未開封とかも含めてかなり購入。
よく分からないものも……。３連休は住基ネットやプロバイダ移行とか色々
することが。 WPC Expo はどうするか……。

2002/09/21 (Sat)
　午前中は洗濯してみずたき作って。それからプロバイダ移行とかぷらとわ
とか。昨日買ったゲームはしてないです。任意ラジヲがイタイ（爆）。シャ
ンゼの本がない……。そして DVD-R メディア。このくらい安いなら。


////////////////////////////////////////////////////////////////////
/*                         風雅、舞い                             */
http://www.kab-studio.com/Novel/Fuga/

■　第五章　変化　−３−

　煙草の灰が綺麗な洋風のテーブルを焦がす。灰を落とすことさえ忘れた男
達は、ただただ呆然とモニターを見ているだけだった。
　モニターが消え照明が点ってからも、声を出そうとは誰もしなかった。初
めての音声は、笑い声から始まった。
「……はは、これはいわゆるその、ジュラシックパークのような、ＣＧとか
そういう」
「ものではありません。これは実際にＬＷシリーズとＡＰシリーズの力を見
てもらったまでです」
「だが、これは……」
「超能力、というものですかな」
「それはまずい、科学界に反旗を翻すようなものだ。これはまずいですよ」
「しかし、インパクトとしては最高のものだな」
　その言葉に、誰もが二の句を継げられなかった。その強烈さは、身をもっ
て知らされていた。
「ところで、そのえーぴーというものは、いったい何なのだね。我々の資料
にはないが？」
「いえ、これは本当はまだ試作段階で、お見せするつもりはなかったのです
が……なんといいましょうか、失敗作でして、すでに処分しました」
「処分？」
「しかし、彼らは人間のように見えたが」
「人間のように似せたＬＷシリーズ、それがＡＰです。ＬＷ−９７は、今日
見ていただいたように巨大な生物ですが、それとは対照的に人に似せること
もできる、そういうことです」
「体が小さい分、あのような力で補っていると、そういうことでしょう
か……」
「ええ。しかし、これは今回の計画にはあまりいい影響を与えないでしょう
から、参考までということで……」
　解説が終わると、男達は周りと話し始める。石和は、彼らがただとりあえ
ず難しい語句を並べ、まるで真面目に議論しているかのように見せているだ
けだということを知っていた。そして、もう私は、あの席に座ってはいな
い。
「田中君、良くやってくれた」
「いえ、しかし……」
「ＡＰのことかね。あれはああいうことになっている。この会議はだね君、
吹き流しのようなものだ。無数の風に翻弄されて幾度も方向を変える。だ
が、下にいる者はその吹き流しを見ることでしか風向きを知ることができな
いのだよ」
「我々は適当に風を起こして、最終的な向きが望むものならばそれでいい
と」
「そういうことだ。ところであの件、どうするかね」
「受けさせていただきます」
　即答したことに驚いて、石和は行雄を見た。
「……本当にいいのかね」
「ええ。このプロジェクトは、人生を賭けられるだけの価値のあるものだ
と、感じましたから」
「そうか……」
　笑みを悟られないよう、石和は煙草に火を点けた。
                                                              (続く)


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[KCM]
『……なんか、前からやるやるって言ってたのが全然……』
「ぷらとわのＨＴＭＬ化とか？」
『そうそれ！　どうなっちゃったの？』
「今準備中みたい」
『ずっと準備中？』
「それはないと思うけど……」
『ってゆーか、なんで時間かかるの？』
「毎週更新するものだから、負担をできるだけ少なくしないと」
『たとえば？』
「元になるＨＴＭＬファイルの作り込みとか、それに」
『それに？』
「メルマガのデータを加工するプログラムを作ったりとか」
『プログラムを作るの！？　そういうのに！？』
「そういうのを軽く作れるようになれると、ちょっと一人前かもね」
http://www.kab-studio.com/
_______________________________________________________________[KCM]


////////////////////////////////////////////////////////////////////
/*                       #pragma twice                            */
http://www.kab-studio.com/Programing/PragmaTwice/

　Version 9.14
配列を読み解く

「今回は、前回出てきた」

static UINT indicators[] =
{
    ID_SEPARATOR,           // ステータス ライン インジケータ
    ID_INDICATOR_KANA,
    ID_INDICATOR_CAPS,
    ID_INDICATOR_NUM,
    ID_INDICATOR_SCRL,
};

「について見てみます」
『ステータスバーに使うのなんだよね。 MainFrm.cpp の上の方にあるけ
ど、いまいちよくわかんない……配列なんだよね？』
「そう、配列。これは配列のちょっと特殊な作り方の例。えっと、まず復習
してもらおうかな。 Version 4.10 ( No.060 ) でポインタ関係のことを思
い出して」
『結構昔ねー。文字列とかはなんか今は〈 LPCTSTR は読み取り専用、 
LPTSTR は書き込み用〉って感覚だけど』
「原理もちゃんと憶えてなきゃダメだからね。 Version 5.03 ( No.068 ) 
の方もちゃんと読んでおいてね」
『こっちは配列ね。そうそう』

    int iAry[3];    // 配列。

    iAry[0] = 1;
    iAry[1] = 2;
    iAry[2] = 3;

『って感じにするのが普通の配列だよね。これと、さっきのって全然違う感
じがする……』
「違うけど、同じ事。だから」

/*
static UINT indicators[] =
{
    ID_SEPARATOR,           // ステータス ライン インジケータ
    ID_INDICATOR_KANA,
    ID_INDICATOR_CAPS,
    ID_INDICATOR_NUM,
    ID_INDICATOR_SCRL,
};
*/
static UINT indicators[5];

「って置き換えて、」
『フツーに配列を作って……』

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
    indicators[0] = ID_SEPARATOR;
    indicators[1] = ID_INDICATOR_KANA;
    indicators[2] = ID_INDICATOR_CAPS;
    indicators[3] = ID_INDICATOR_NUM;
    indicators[4] = ID_INDICATOR_SCRL;
// 以下略。

「って感じに CMainFrame::OnCreate() の中で値を入れれば」
『お、これでもちゃんと CAPS とか出るね。前の方法でもできるってこと
ねー』
「そう、だから自分で配列を作るときには前の方法でいいと思うよ。でも」
『読めないとダメ？』
「そゆこと。というわけで、ひとつひとつ見ていきます。まず」

static 

「から」
『これまたピンポイントね』
「で、これは無視してください」
『なんですと！？　いきなり無視ですか』
「そう、これがなぜ付いてるかっていうのはものすごーく難しい話になっ
ちゃうんで今回はパス」
『……ホント？』
「え？　なんで？」
『だって、 static って前に出てるじゃない』
「そう、そこが問題。たとえば Version 6.02 ( No.102 ) で」

COver *GetCOver()
{
    static COver s_cOver;
    return &s_cOver;
}

『そうそう。こうやって static 付けると、関数から抜けても変数がなくな
らないんだよね』
「そうでした。ところが、今回の配列は関数の外に作られてます。そういう
変数をなんというでしょう」
『……問題？』
「問題」
『えっと、グローバル変数だよね』
「そうです。グローバル変数については Version 6.16 ( No.116 ) を参
照。この変数は .cpp ファイルの中ならどこからでも使うことができる、
ってことはなくならないってこと」
『あー、 static 付けなくてもなくなんないんじゃん……ってことは？』
「ということは、グローバル変数に付けた static と、ローカル変数に付け
た static は別の意味になるってことです」
『わ、わけわかんない……』
「で、このグローバル変数に付けたときの機能って、ちょっと込み入った話
になるから今回はパス、ってこと。３章くらいあとに出てくるからそれまで
待って」
『１年くらい後になるわけね』
「やっぱそのくらいは掛かるかな……。で、次」

UINT indicators[]

「これは Version 5.04 ( No.069 ) でやった」

    char chAry[] = "ABC";

「の時と同じように、配列の中身の数を省略した書き方」
『そっか、あの文字列のと同じなんだね。あの時は、文字数と、あと \0 が
入ってたから４つ作ってくれたんだよね』
「今回のもそれと同じ、自動的に必要な数だけ確保してもらうための書き
方。で、この」

 = "ABC";

「の部分、この文字列の〈文字数＋終端文字〉が４文字だから」
『 chAry は４つ分入るわけよね』
「この部分に当たるのが」

{
    ID_SEPARATOR,           // ステータス ライン インジケータ
    ID_INDICATOR_KANA,
    ID_INDICATOR_CAPS,
    ID_INDICATOR_NUM,
    ID_INDICATOR_SCRL,
};

「ってわけ」
『なるほど！　ここに５つ分あるから、……』
「文字列じゃないから終端文字とかないよ」
『ってことは５つ分？』
「そゆこと。 indicators は [] にして、 = { 値, 値, ... }; って渡す
と、この５つ分だけ必要ってことで」
『 indicators の配列が５つ分入るようになるわけね』
「そゆこと。もう少し分かりやすく書くと、さっきの」

    int iAry[3];    // 配列。

    iAry[0] = 1;
    iAry[1] = 2;
    iAry[2] = 3;

「を今の形式で書くと」

    int iAry[] = { 1, 2, 3 };

『なるほどねー。こっちの方がシンプルで分かりやすいかも』
「いや、そうでもないんだけどね……」
『質問！』
「あ、はい火美ちゃん」
『えっと、』

    ID_INDICATOR_SCRL,
};

『って、最後に , が付いてるけど、これいーの？』
「うん、この配列のところだけの特例なんだけど、最後の値のあとに , が
あってもなくてもいいようになってます。だから」

    int iAry[] = { 1, 2, 3, };

「でもＯＫ」
『 , 付けると、４つって取られたりしない？』
「それは大丈夫、３つ分しか取られないから」
『ただ , が無視されるだけなのね』
「ちなみに付けた方が便利かな。カット＆ペーストで順番を入れ替えるとき
とか」
『そういえばそうね。っていうかそのため？』
「かも……」
『もひとつ質問』

    char chAry[] = "ABC";

「とさっきのって、似てるよね」
『似てるけど、この "" を使う方法は文字列専用だから。たとえば、これ
を {} を使って書くと』

    char chAry[] = { 'A', 'B', 'C', '\0' };

『うわ、めんど！』
「でしょう。だから文字列だけは特別に簡単に配列を作れるようになってる
んです」
『……なんか特例って多くない？』
「多いよ。はっきり言ってその辺は難しいと思うから、ひとつひとつ憶えて
いくしかないかもね」
『ぶー』
「ポインタや配列が難しいって言われる理由のひとつがこの辺かもね。こう
いう特例がいっぱいあるから」
『頭がこんがらがる〜』
「最後に、実際に使ってる部分を見ておこうか」

            !m_wndStatusBar.SetIndicators
                ( indicators
                , sizeof(indicators)/sizeof(UINT)
                )

『ステータスバーのところなんだよね』
「そう。 CStatusBar::SetIndicators() は第１引数にステータスバーで使
う ID の入った配列、第２引数にその配列の要素の数を受け取ります」
『そうすれば自動的にステータスバーが機能する……って、第２引数って要
素の数、って配列の中身の数だよね、これがそうなの？』
「 Version 5.03 ( No.068 ) で見たように、 sizeof( 配列 ) は」
『全体のバイト数だよね。それを UINT の sizeof() で割ると……』
「 UINT は要素の型。そのバイト数で割れば、要素の数が分かるってわけ」
『おー！　なるほど』
「ま、これも配列だからできることなんだけどね」

/*
    Preview Next Story!
*/
『うーん、地味』
「じゃあ、次はちょっと面白いのやってみようか」
『面白いの？』
「テキストエディタを作ってみるとか」
『……うそ』
「というわけで次回」
＜ Version 9.15 ちょっとテキストエディタっぽく！ ＞
『につづく！』
「まじ？　まじ作れるの？」
『見た目だけだけど、面白いと思うよ？』


////////////////////////////////////////////////////////////////////
/*                ２００２年９月３０日（月）の更新                */
http://www.kab-studio.com/

・ほとはー追加予定。
　三人合体ホットハーブに３の４を追加予定。たぶん大丈夫。
[ 三人合体ホットハーブ ]
http://www.kab-studio.com/Comic/HotHerb/


////////////////////////////////////////////////////////////////////
/*                          ご注意！！                            */

・このメールを返信しないでください。
・ご意見・ご希望・ご感想は[チョー普通な日記]よりお送りください。
http://www.kab-studio.com/nikki2/
・購読登録を解除したいときにはこのページで行なってください。
＊http://www.mag2.com/m/0000012198.htm
＊http://www.pubzine.com/detail.asp?id=000590
・解除は自分で行なってください。
・バックナンバーはこれらのページにあります。
http://backno.mag2.com/reader/Back?id=0000012198
http://www.kab-studio.com/Freeware/index.html#MailMagazine


////////////////////////////////////////////////////////////////////
/*
    KAB-studio.h
      Weekly Mail Magazine.
      Written by Kaburaya Seiden.
      http://www.kab-studio.com/Info/MailMagazine/

    (C)KAB-studio 1999 - 2002 ALL RIGHTS RESERVED.
        http://www.kab-studio.com/
        info@kab-studio.com
*/
////////////////////////////////////////////////////////////////////

