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

    KAB-studio.h


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

    送信日： 2003/04/07(Mon) No.201
    配信数： 3210 ( Mag2 + Pubzine )
＊    発行元： まぐまぐ ( URL: http://www.mag2.com/  ID: 0000012198 )
＊    発行元： Pubzine ( URL: http://www.pubzine.com/  ID: 590 )
*/
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
/*                          祝・４周年！                          */

『どんどんパフパフー！』
「おかげさまで KAB-studio.h は４周年を迎えました！」
『あっという間だったねー』
「もう４年も経ったんだね」
『のわりには、 #pragma twice は全然進んでる感じしないし』
「う……」
『中身も変わり映えしないし』
「ちなみに５年目の今年も、特に内容は変わりません」
『ダメじゃん』
「あ、 #pragma twice をホームページにも掲載することにしました！」
『 Version 1 からでしょ？　ってゆーかそれってバックナンバーでしょ』
「だよね……」
『しかもこのメルマガ読んでる人には全然関係ないし』
「だよね……」
『そんなダメダメなメールマガジンでよければ』
「これからもよろしくお願いいたします！」


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

・トップページをリニューアル
　ホームページのトップページのデザインを新しくしました。画面構成やメ
ニューは以前と同じなので使い勝手は変わらないと思うです。まぁようする
に変えた意味はあんまりないです（汗）。

・#pragma twice がホームページにも！
　今週から #pragma twice をホームページにも掲載します。というか
「バックナンバー」です（汗）。
　毎週２話ずつ追加していく予定。今回は特別に４話追加！
[ #pragma twice ]
http://www.kab-studio.com/Programing/PragmaTwice/

・４月表紙壁紙！
　毎月恒例、新しい表紙です。なんか懐かしい絵柄ですね……。ダウンロー
ドは CG Gallery にて。
[ CG Gallery ]
http://www.kab-studio.com/CG/Gallery/

・かぶヘッダー４周年！
　KAB-studio.hが４周年を迎えました！　かといって内容は変更なし……。


////////////////////////////////////////////////////////////////////
/*                        ちょお普通な日記                        */
http://www.kab-studio.com/nikki2/

2003/03/30 (Sun)
　ほとはーと新表紙壁紙の背景。絵を描くセンスなし。でも好きだから。仕
事はのんびりと。ギャラクシーエンジェル最終回、謎だ。こみパ彩シナリ
オ、新鮮だ。そしてメールサーバー。 UNIX 系じゃないのでいいの。 
Neon ？

2003/03/31 (Mon)
　WEB ストレスツール。 JMeter がうまく起動しない……。あとバグ取り。 
FFX-2 のサントラがない。安売りＤＶＤとビデオテープ。１０分で自分発見。
そしてＤＶＤ＋ＨＤデッキ。外から予約、いいなぁ。

2003/04/01 (Tue)
　WAS を試す。意外と使いやすい。 JMeter 使ったら文字化けするし。 WAS 
のドキュメント書いたり。 FFX-2 サントラ購入。 E'S は微妙。４月１日
エイプリルフール企画したかった……。

2003/04/02 (Wed)
　暇モード。ちょうど間だから。 Java まだ慣れてないなぁ。 AirH" Phone 
いいなぁ。新しい表紙ページ。実はこれまで結構大変だった。そして
エイプリルフールページ。遅かった……。

2003/04/03 (Thu)
　Java ずるい。 Collections#unmodifiableList() とか。なんでもある
なぁ。マリア様がみてるを読了。なにげにいいかも。春の新番組は
カレイドスターが一番？　ステルヴィアもいい感じ。ぷらとわ WEB 版の準
備。そしてまぐまぐエイプリルフール。凝ってるなぁ。

2003/04/04 (Fri)
　徹ゲー。今回はソウルキャリバー２。お仕事はまったり。 WAS 使ってテ
ストとか。あと Struts の DynaValidatorForm や <html:options> も試し
てみたり。

2003/04/05 (Sat)
　夕方までまったり。それから表紙壁紙描き。朝の新番組はロキが一番。
ぴちぴちピッチはなんか微妙？　今晩も明日もまた色々……。


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

■　第七章　告白　−２−

「リシュネが碧き泉に来てるって」
「え、ホント！？」
　鈍行の電車の中で舞は驚いていた。
「悪いことしちゃった。まさか昨日の今日で来ると思わなかったし」
「よっぽど好かれてるんだな、お前」
「好かれてるって……」
　雅樹にとって、リシュネはかなり小さな子供に見えているようだった。
「ねぇ、穂香さんに頼んでリシュネに連絡取ることって……できないんだよ
ね」
「ああ。まだ俺以外で穂香の声を聞けたって人には遭ってないな」
　流れる風景を眺めながら、独り言のように雅樹は言った。
　それを追うように舞も外を見る。見えないリシュネの姿を思い浮かべて。
「あ、でもリシュネ、先回りしちゃうかな」
「それはないと思う。俺、結白さんには朱き泉の場所言ってないはずだ」
「え、そうなの？」
　雅樹と母とは完全な情報交換ができていると舞は感じていたから、その言
葉には驚いた。
「だって、雅樹は碧き泉の場所って知ってたんでしょ？」
「いや、実は偶然」
「マジ？」
「もちろんあの森の中で見つけるなんて不可能だけどな。ふもとに来た時に
穂香が見つけてくれたから来れたけど」
「あのときの話？」
「ああ。だから、俺の朱き泉でも碧き泉の場所は知られてなかった、という
よりは、俺のいた所が朱き泉って呼ばれてることすら知られてなかった」
「つまり、４つの泉があるっていうのも」
「結白さんから聞いて初めて知った。っつーか……」
　雅樹はため息をついた。
「他の泉、もうないかもな」
「えっ……それどういうこと？？」
「おまえんとこの碧き泉、お前か兄さんが継がなきゃ途絶えるだろ？」
「継がないって事はないと思うけど」
「じゃあ２人とも死んだら？」
「あ……」
　ここ数ヶ月で頻発している戦闘。あり得ないことじゃない。
「病気だって戦争だっていいし、それに……単純に継ぐのが面倒になったっ
てこともあり得るだろう」
「そうやって、泉を誰も管理しなくなる……」
　無人の泉。足の踏み場もないほど草が生い茂る碧き泉を、舞は容易く想像
できた。そしてそれは、十分可能性のあることだった。
「そっか……玄き泉や白き泉がもうないかもしれないんだ」
「ま、誰もいなくたって、見つけ出せさえすればなんとかなるかも、な」
                                                              (続く)


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[KCM]
『ってわけで、ぷらとわのバックナンバーをかぶスタにも載せるんだよね』
「うん、今週から毎週２話ずつ」
『あれ？　今週は４話あるよ？』
「うん、今週は特別に。最初の２話はプログラミングと関係ないし」
『ってゆーか、この中に出てくるふたりって全然出て来ないね』
「ぷらとわが終わるのをさらに延ばしたいの！？」
『う”っ』
「というわけでそのあたりは気にせず」
『でもさ、なんでいまさらバックナンバーを？』
「かぶスタのヒット数を増やすため」
『げ』
「それだけで google から飛ぶ数が大幅に増えると思うよ」
『確かに、まぐまぐとかのバックナンバーはヒットしないみたいね』
「それに、このメルマガの購読登録数も増えるしね」
『なんだかなー』
http://www.kab-studio.com/
_______________________________________________________________[KCM]


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

　Version 11.01
文字列ってなんだっけ

「というわけで、今回からは文字列編に入ります」
『なんか地味〜な感じねー』
「でも、本当に重要で、きっと役に立つから」
『はいはいはい。で？』
「で、まずは下準備から。新しく MFC のプロジェクトを作って」
『 MFC なの？』
「今回は文字列の勉強だけだから、 MFC 使った方が楽でしょ」
『確かに、わざわざあの長ーいの用意するのは大変よね……』
「 MFC には TRACE() もあるし」
『【新規作成】で MFC AppWizard (exe) っと、プロジェクト名は？』
「プログラムの世界では文字列は string って言うから」
『じゃー StringTest っと』
「テストアプリを作るのと同じようにして」
『じゃあダイアログね』
「テストアプリの作り方については Version 4.01 ( No.051 ) を参照して
ください」
『プロジェクト作って、ボタン置いて、ハンドラ作ってと』

////////////////////////////////////////////////////////////////
//    １番目のテスト。

namespace B1
{

void Test()
{

}

}    //B1


void CStringTestDlg::OnButton1() 
{
    B1::Test();
}

『って感じになればいいんだよね』
「そうそう。さて、では文字列について復習していきます。文字列について
は Version 5.04 ( No.069 ) で説明したとおり」
『うん、前に教わった』
「その中でも重要な部分について振り返ってみます。まずは文字から」

void OutputChar()
{
    TRACE( "%d, 0x%X\n", 'A', 'A' );
    // 65, 0x41
}

「あ、ちなみにここからは呼び出す関数だけ書くからね。たとえばこの例だ
と」

////////////////////////////////////////////////////////////////
//    １番目のテスト。

namespace B1
{

void OutputChar()
{
    TRACE( "%d, 0x%X\n", 'A', 'A' );
    // 65, 0x41
}

}    //B1


void CStringTestDlg::OnButton1() 
{
    B1::OutputChar();
}

「っていうふうに呼び出されていると考えてください」
『はーい。えっと、これは A って文字を数字で出してるんだよね』
「そう。文字は '' で囲むと整数値になります。 A は１０進数だと 65 、
１６進数だと 0x41 になります」
『なんで１０進数と１６進数両方出してるの？』
「とりあえずわかりやすいのは１０進数かと思って。ただ、文字列の世界で
は１６進数で表現する方が多いから、これからは１６進数で書くね」
『はーい』
「で、この A が 0x41 だ、っていうのは本当は間違い」
『へ？』
「実は逆で、 0x41 って数字が A って文字に変換されてるんです。数字が
先にあるってこと」
『つまり A → 0x41 じゃなくて、 0x41 → A ってこと？』
「そういうこと。これはとっても大事なことだから」
『そんなに？』
「そんなに。もう少ししたら教えるから。で、話を戻すと、この文字が並ん
でいるのが文字列」

void OutputString()
{
    char ch[] = "ABC";
    TRACE( "%s, 0x%X\n", ch, ch );
    // ABC, 0x12F6B0
}

「こうするとことで配列が作られて、その中に ABC が入ります」
『あと \0 も入るんだよね』
「そうそう。だから全部で４文字になります。で、これは実際にメモリを見
てみるのが一番」
『メモリウィンドウを開くんだよね』
「その前にブレークポイント置かないと。 } の所にブレークポイントを置
いて、そこで止めてから、メモリウィンドウに 0x0012F6B0 を入れてリター
ンすると」

0012F6B0  41 42 43 00 (略)  ABC..(略)

『 41 がさっきの A の文字だね。で、 42 が B 、 43 が C 、 00 が \n 
だね』
「文字列が何かわからなくなったら、メモリウィンドウを見てみるといいか
も。 VC にはこういう便利なものがあるんだから」
『これだとすぐわかるもんね』
「では次。さっきの」

    char ch[] = "ABC";

「だけど、これは〈 ABC\0 が入る配列を作って、その中にコピーしろ〉
ってこと」
『うん』
「つまり、これだと３文字分、 \0 も含めれば４文字しか入らない配列が作
られちゃいます」
『ってことは、それより長い文字列は入らない！』
「配列はサイズを自由に広げられないから」
『なんでだっけ、それ』
「さっきメモリのイメージを思い出して。配列の右側に」
『他の変数があったら広げられない……ってこと？　じゃあ別の所に長ーく
取り直せばいいじゃん』
「それが CString とかってこと」
『あー』
「そういう CString とかの機能は〈可変長文字列〉って言って自由に文字
列の長さを変えられるんだけど、それはも少し先ってことで、ここでは配列
を大きめに取って対処します」

void CharArray()
{
    char ch[256];
    strcpy( ch, "ABC" );
    TRACE( "%s, 0x%X\n", ch, ch );
    // ABC, 0x12F5B4
}

「まず２５６文字分の配列を確保して、そこにランタイムの strcpy() で文
字列をコピーします」
『これならあとでもっと大きな文字列も入れられるってわけね』
「メモリ的にはこうなってます」

0012F5B4  41 42 43 00 CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC
(以下、 CC が続く）

『うわ、なんか CC がいっぱい入ってる！？』
「これは OS とかによって違ってくるから、こうならない場合もあるから」
『こうならないって？』
「普通、変数は場所を確保するだけだから、確保する前のメモリの状態その
ままってこと」
『前に使った状態そのままってことね』
「プログラミング用語でそういうのを【ゴミ】って言います」
『ゴミ……』
「この変数、初期化してないからゴミが入ったままだ、とかね」
『初期化？』
「変数になにかの値を入れておくこと。文字配列だとあまり必要ないけど、
整数値とかだと重要かな。たとえば」

void OutputNoInit()
{
    int i;
    TRACE( "%d\n", i );
}

『あ、ビルドしたら警告出た』

warning C4700: 
値が割り当てられていないローカルな変数 'i' に対して
参照が行われました。

「この場合、 i は変数の領域を確保しただけだから」
『それまでメモリにあったのがそのまま残ってる、つまりゴミが入ってる
ってわけね』
「そう。だから、これを初期化します」

void OutputInit()
{
    int i = 0;
    TRACE( "%d\n", i );
    // 0
}

『なるほどねー。って文字列から離れちゃったじゃん』
「う”。まぁ文字列についての復習はできたから大丈夫。うん、大丈夫」
『……』

/*
    Preview Next Story!
*/
『ほんっとーに地味な復習ねー』
「まぁ実際はそれほど重要じゃないかもね」
『え、そうなの？』
「慣れちゃえば特に気にせず使えるようになるから」
『……それって危なくない？』
「……」
『……なに？』
「ううん、なんでも。というわけで次回」
＜ Version 11.02 ファイル名を抜き出してみよう ＞
『につづく！』
「いやぁ……なんかここまで来たんだなぁって……ううっ」
『泣いてる！？』


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

・ほとはー追加予定
　三人合体ホットハーブに１話追加予定。暇な今のうちに！


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

・このメールを返信しないでください。
・ご意見・ご希望・ご感想は[チョー普通な日記]よりお送りください。
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 - 2003 ALL RIGHTS RESERVED.
        http://www.kab-studio.com/
        info@kab-studio.com
*/
////////////////////////////////////////////////////////////////////

