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

    KAB-studio.h


    (C)KAB-studio 1999 - 2005 ALL RIGHTS RESERVED.
        http://www.kab-studio.biz/
        info@mail.kab-studio.biz

    送信日： 2005/05/02(Mon) No.305
    配信数： 1970
    発行元： まぐまぐ ( URL: http://www.mag2.com/  ID: 0000012198 )
*/
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
// NEW!!
http://www.kab-studio.biz/index.html

2005/05/02 (Mon)
　ほとはー外伝３にP.16を追加！
[ 三人合体ホットハーブ 外伝３ 【ワタシ の キロク】 ]
http://www.kab-studio.biz/Comic/HotHerbA3/index.html

2005/05/02 (Mon)
　風雅、舞い ホームページ版にアーカイブ追加！
第三章 きもち
[ 風雅、舞い ]
http://www.kab-studio.biz/Novel/Fuga/index.html

2005/05/02 (Mon)
　#pragma twice ホームページ版にアーカイブ追加！
11.14 メモリ確保とデバッグモード
11.13 new と delete とそのほか色々
[ #pragma twice ]
http://www.kab-studio.biz/Programing/PragmaTwice/index.html

2005/04/26 (Sun)〜2005/05/02 (Mon)
　かぶろぐがろうに版権物イラストや３コマ追加。
イラストやその他ラクガキとかとか。
交響詩篇エウレカセブン・水着のエウレカ様
交響詩篇エウレカセブン・恥ずかしがるエウレカ様。
極上生徒会vs交響詩篇エウレカセブン
交響詩篇エウレカセブン・エウレカ様（太線）
交響詩篇エウレカセブン・エウレカ様
交響詩篇エウレカセブン・エウレカ様は何を思う
交響詩篇エウレカセブン・エウレカ様全身像
交響詩篇エウレカセブン・エウレカ様
交響詩篇エウレカセブン・エウレカ様
[ かぶろぐがろう ]
http://f.hatena.ne.jp/kab_studio/


////////////////////////////////////////////////////////////////////
// ちょお普通な日記
http://www.kab-studio.biz/nikki2/index.html

2005/04/24 (Sun)
　１０時半に起きて今週分を更新。もう少し自動化したい。２時に新宿へ
行って香港旅行をキャンセル。あとはマジックアカデミー２したりとか。
ビデオのダビングしないとギリギリ。そして職安。そしてカロリー。そして
橘いずみ。

2005/04/25 (Mon)
　１０時起き。電車事故のニュース……。昼過ぎまで KAB-studio.h の更新
とか。午後３時から歯医者。ゴールデンウィークで次は５月９日……。帰り
に横浜へ。針とオレンジ他購入。いつの間にか寝てた。もう少しがんばりた
い。

2005/04/26 (Tue)
　１０時起き。８時間寝てるはずなのに眠い。昼過ぎにツッコミシステムを
マイナーバージョンアップ。エウレカ様描き、でもうまくいかず。 JavaA2Z 
の単語追加して散歩してエウレカ様描いて。ウェブアプリ「あまかい」は
こつこつやっていくことに。

2005/04/27 (Wed)
　うだーっと。胃腸が良くないのもあって。１０時半に起きて２時まで
うだーっと。遠くの公園までてくてく散歩。「あまかい」の詳細設計書の
概要を書いてみる。５月中に完成させたい。 JavaA2Z のヒット数が 
#pragma twice を超えそう。 Amazon アソシエイトのクーポン券届く。

2005/04/28 (Thu)
　１０時半起き。イラスト描いたけどちょっと雑。萌え絵を描くことに抵抗
が？　sakusaku Ver.1.0 と AIR 第2巻届く。あとは JavaA2Z の単語を追加
して以上。木曜深夜はアニメ激戦区だ……。

2005/04/29 (Fri)
　ゴールデンウィークお休み？

2005/04/30 (Sat)
　丸２日間ゲームばっかしてた。２９日は午前１１時半に町田に集って
ゲーセンでゲーム。クイズマジックアカデミー２と pop'n music とか色々。
友人宅へ行って、徹ゲーはせずに寝て、マンガ読んでのんびり。
のだめカンタービレとかハチミツとクローバーとか。あとはゲーム。GC版
ナルトやマリオテニスGCとか。なんか疲れた……。


////////////////////////////////////////////////////////////////////
// かぶろぐ。
http://d.hatena.ne.jp/kab_studio/

2005/04/24 (Sun)
http://d.hatena.ne.jp/kab_studio/20050424
起きた。
[アニメ]魔法戦隊マジレンジャー Stage.11
[ほとはー]ほとはー外伝３ P.15
風雅、舞い追加。
#pragma twice 追加。
新宿行ってきます。
旅行はキャンセル。
[アニメ]おねがいマイメロディ 第4話
原因は「二重の人為的ミス」　ウイルスバスター不具合で謝罪
[アニメ]ゾイド ジェネシス 第3話「旅立ち」
[JavaA2Z]単語追加。
[アニメ]まほらば 第16話・第17話
[アニメ]交響詩篇エウレカセブン 第2話「ブルースカイ・フィッシュ」

2005/04/25 (Mon)
http://d.hatena.ne.jp/kab_studio/20050425
起きてます。
歯医者。
帰ってきました。
うあ。
[病気治療]歯医者。
[買]昨日と今日買ってきたもの。
[JavaA2Z]単語追加。
[あまかい]ドメイン取れない。
[Machician]第６話 祭の夜に (21) [△]

2005/04/26 (Tue)
http://d.hatena.ne.jp/kab_studio/20050426
起きた。
[アニメ]勇者王ガオガイガーFINAL 第3話「破壊神！嵐の決戦！」
ツッコミシステムをマイナーバージョンアップ。
[JavaA2Z]単語追加。
[版権物イラスト]交響詩篇エウレカセブン・エウレカ様（太線）
[ラグナロクバトルオフライン]攻略本。
トリコロ英語版、近況。
やっべ。
[Machician]第６話 祭の夜に (22)

2005/04/27 (Wed)
http://d.hatena.ne.jp/kab_studio/20050427
起きてます。
Amazon アソシエイト
[あまかい]挫折しそう（爆）。
[JavaA2Z]単語追加。
ぐぐると2位。
智代アフター 〜It's a Wonderful Life〜
[アニメ]極上生徒会 第4話「素晴らしく冴えたやり方」
[Machician]第６話 祭の夜に (23)

2005/04/28 (Thu)
http://d.hatena.ne.jp/kab_studio/20050428
起きたよ。
睡眠時間、遺伝子が操る
[版権物イラスト]極上生徒会vs交響詩篇エウレカセブン
[版権物イラスト]交響詩篇エウレカセブン・恥ずかしがるエウレカ様。
[版権物イラスト]交響詩篇エウレカセブン・水着のエウレカ様
Amazon が！
ゴールデンウィークですね。
[買]sakusaku DVD。
はてなアイデアベータ版開始
[買]本屋で買ってきたもの。
[アニメ]LOVELESS 第1話〜第4話
[JavaA2Z]単語追加。
[アニメ]トリニティ・ブラッド 第1話
[買][アニメ]テレビ版AIR DVD 第2巻 初回限定版
[Machician]第６話 祭の夜に (24)

2005/04/29 (Fri)
http://d.hatena.ne.jp/kab_studio/20050429
眠い。
行ってきます。
[Machician]第６話 祭の夜に (25)

2005/04/30 (Sat)
http://d.hatena.ne.jp/kab_studio/20050430
えーっと。
爆笑オンエアバトル
昨日のゲームしまくりに関連して。
昨日読んだコミックス。
Machician 昨日分追加。


////////////////////////////////////////////////////////////////////
// 風雅、舞い
http://www.kab-studio.biz/Novel/Fuga/index.html

■　第十二章　超越する存在　−１０−

「なんで俊雄君がいるのよ！！」
　やっと白み始めたという早朝。
　レストランの駐車場で、舞は憤っていた。
「左さんが呼んだんですか！？」
「ううん、僕が参加したいって」
「……」
　舞が俊雄を睨む。俊雄は苦笑いするだけ。
「……俊雄君、どういうことか判ってる？」
「解ってるつもり、だけど」
「そう……じゃ」
　舞は右手を構える。朝露と霧から水分が抽出され、右手の元に剣を形作
る。
「右腕出して。斬り落とすから」
「え……」
　さすがに俊雄の顔から笑みが消える。
「右腕」
「――」
「右腕」
「……」
　俊雄はおずおずと右腕を差し出す。
　頬が、切れる。
「……ッ！？」
　一瞬遅れて、気付く。
　その剣が、右頬に触れている。
　俊雄は、認知すらできなかった。
「舞……さん……？」
「……むかつく」
　むかつく。
　斬れない自分にむかつく。
　俊雄を許してしまう自分に腹が立つ。
　大袈裟に溜息をついてから、剣を消す。
「いい、もう好きにして。私は百万のことで頭がいっぱいなんだから」
「？？？」
　俊雄は何もわからないまま、立ちつくす。その肩を、雅樹が叩く。
「しゃんとしろ！　ホントに舞に殺されっぞ？」
「ま、まさか」
「故意にじゃなくて、だ。味方の誤射や事故での戦死なんてざらにあるんだ
からな」
「……」
　俊雄は何も答えず、ただうなずいた。
                                                              (続く)


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[KCM]
　うめさん、ごめんなさい。
　僕はきっと、ずっと、嘘をついていたんですね。
　紫恋さんに話したように、
　自分の弱いところをずっと隠していたんですね。

Machician 第６話 祭の夜に 好評連載中！
[ Machician ]
http://d.hatena.ne.jp/kab_studio/20040823#1093276416
[ Machician＋設定 最新一覧 ]
http://d.hatena.ne.jp/kab_studio/searchdiary?word=*%5BMachician
_______________________________________________________________[KCM]

////////////////////////////////////////////////////////////////////
// JavaA2Z
http://www.kab-studio.biz/Programing/JavaA2Z/index.html

■追加・更新単語
整数リテラル
2進数
親クラス
子クラス
HashSet
args
再帰呼び出し
ハッシュ値
クラス変数
シリアライズ
直列化
Serializable
import
パッケージ名
package
パッケージ
ブレークポイント
CUI
GUI
派生クラス
ビットシフト演算子
>>>
>>>演算子
<<
<<演算子
>>
>>演算子
close
Runtime


////////////////////////////////////////////////////////////////////
// #pragma twice
http://www.kab-studio.biz/Programing/PragmaTwice/index.html


　Version 15.05
インクルードの順番

「前回は、ヘッダーファイルがなぜ便利なのか説明しました」
『よーするに関数を呼ぶにはその宣言が必要、その宣言だけをまとめた
ヘッダーファイルを使い回せばいろんなソースファイルから関数が呼べる、
ってことよね』
「そういうこと。そんなヘッダーファイルについて、細かいテクニックや、
気を付けておかなければならない点について説明します」
『はーい』
「まずはこれから」

・２種類のインクルード方法について

#include <Windows.h>
#include "Sub.h"

『あ、 <> で囲むのと "" で囲むのと２種類あるんだよね』
「そう。 <> は API や MFC のヘッダーファイルをインクルードする時に、
"" はプロジェクト内のヘッダーファイルをインクルードするときに使いま
す」
『 API の？』
「そう。具体的には……メニューの【ツール】−【オプション】の
【ディレクトリ】ページで、【表示するディレクトリ】を
【インクルードファイル】を選んでみて」
『 C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE とかある』
「これは、 Visual C++ をインストールした時に、 API や MFC の
ヘッダーファイルをインストールしたフォルダ。で、実は <> で
インクルードするのは、ここに書かれているフォルダの中の
ヘッダーファイルなんです」
『そっか、 API とかもちゃんとヘッダーファイルがあって、ここに置かれ
てて、 <> だとここを見に行って……』
「だから、逆もＯＫ」
『逆？』
「たとえばここから Windows.h をプロジェクトへコピーして "Windows.h" 
でインクルードしたり」
『できるんだ……』
「プロジェクトのヘッダーファイルを置いてあるフォルダをここの設定に追
加して <Sub.h> ってインクルードしたり」
『それもできるんだ……』
「特に、自分でライブラリを作って使う場合には、ヘッダーファイルの置い
てあるフォルダをここで指定すれば」
『ライブラリっぽく使える！　なんかちょっとかっこいいかも』
「では次」

・インクルードの順番

「前回、インクルードは〈コピペするようなもの〉って説明しました」
『うん、ただファイルの中身をそのまま置き換えるだけなんだよね』
「だから、インクルードする順番が実は重要なんです」
『順番？』
「プログラムのコンパイルって、上からするって説明したでしょ」
『うん。上から見ていって、関数の宣言があったら憶えておく、とか』
「だから、こういう場合に問題になります。まず Typedef.h ってファイル
を追加して」
『ほい。【ファイル】−【新規作成】で【ファイル】の
【C/C++ ヘッダーファイル】、ファイル名は Typedef.h ね』
「その中にこう書いて」

// Typedef.h
typedef int INTEGER;

『 typedef って、型の別の名前付けるのだよね』
「そう、 Version 5.08 ( No.073 ) でやったね。次に Sub.cpp をこうしま
す」

// Sub.cpp

#include "Typedef.h"
#include "Sub.h"

void Test( INTEGER p_i )
{
}
「さらにそのヘッダーファイル Sub.h をこうします」

// Sub.h

void Test( INTEGER p_i );

『 Typedef.h の INTEGER を引数に使ってるわけね』
「で、最後にこれを使う Main.cpp 」

// Main.cpp
#include <Windows.h>

#include "Typedef.h"
#include "Sub.h"

int WINAPI WinMain
    ( HINSTANCE p_hInstance
    , HINSTANCE p_hPrevInstance
    , LPSTR p_pchCmdLine
    , int p_iCmdShow
    )
{
    Test( 100 );
    return 0;
}

『ビルドっと。あれ、普通に通ったけど』
「そう、これは〈正解〉」
『じゃあ間違った例は？』
「さっきも言ったように、インクルードファイルの順番を間違えた場合」

// Main.cpp
#include <Windows.h>

#include "Sub.h"
#include "Typedef.h"

int WINAPI WinMain
    ( HINSTANCE p_hInstance
    , HINSTANCE p_hPrevInstance
    , LPSTR p_pchCmdLine
    , int p_iCmdShow
    )
{
    Test( 100 );
    return 0;
}

『あ、 Sub.h と Typedef.h のインクルードの順番が逆だ』
「そうするとこういうコンパイルエラーが出ます」

error C2065: 'INTEGER' : 定義されていない識別子です。

「これは、インクルードファイルをそのまま展開してみればわかると思いま
す」

void Test( INTEGER p_i );

typedef int INTEGER;

int WINAPI WinMain
    ( HINSTANCE p_hInstance
    , HINSTANCE p_hPrevInstance
    , LPSTR p_pchCmdLine
    , int p_iCmdShow
    )
{
    Test( 100 );
    return 0;
}

『あ、 typedef する前に Test() の引数で使ってる！！』
「そう、上から順番に見ていくから、 Test() の引数で使う前に typedef 
してなきゃいけない、だけどしてないからコンパイルエラーになるんです」
『順番が大事ってこういうことなんだ』
「これは自分で作ったヘッダーファイルだから分かりやすいけど、 API や
MFC のヘッダーファイルでもこういうことはあるから注意して」
『……ってゆーか、それってもしかしてヘッダーファイルの中身見なきゃ、
どっちを先にとかって分からなくない？』
「うん、わからないかも」
『げ』
「逆に言うと、ヘッダーファイルは見ればなんとかなるって言うことも言え
るけどね」
『それはそうだけど……』
「順番に関して、どうしようもない場合とかもあります」
『どうしようもない場合？』

・ヘッダーファイル同士の相互参照

「まず Sub.h が……」

// Sub.h

void Test( INTEGER p_i );

typedef int INTEGER2;

『もうひとつ int が再定義』
「そして Typedef.h が……」

// Typedef.h

typedef int INTEGER;

void Test2( INTEGER2 p_i );

『こっちでその INTEGER2 を使ってる……？』
「どっちを先にインクルードすればいいと思う？」
『 Typedef.h の Test2() に Sub.h の INTEGER2 があるから、 Sub.h を先
に……したら、さっきと同じことになっちゃうから、 Typedef.h を先に……
でもそしたら……これってダメじゃん！！』
「そういうこと。こういうヘッダーファイルを作ると、どちらを先に
インクルードしてもコンパイルエラーになります」
『……じゃあ、そういう場合、どうすればいいの？』
「このヘッダーファイルを自分で作った場合には、整理すればいいだけ。 
INTEGER2 を Typedef.h に、 Test2() を Sub.h に置けば問題ないでしょ」
『そっか、 typedef は Typedef.h に、関数は Sub.h に……』
「最悪、自分が作ったヘッダーファイルじゃないとしても、全部コピペして
新しいヘッダーファイルを自分で作っちゃえばいいだけ」
『へ？　それっていいの？』
「もちろん。ヘッダーファイルは、単にプログラムの〈情報〉があるだけ。
だから使いづらかったら自分で作り直しちゃえばいいんです」
『それって結構すごいかも……』
「ま、最終手段だけどね」

/*
    Preview Next Story!
*/
『ヘッダーファイルを作るって、なんかすごすぎるんだけど』
「ヘッダーファイルは古い技術の集まりだからね」
『古いの？』
「古いよ、だから手作業的な部分が多いし、小さなテクニックも」
『テクニック？』
「というわけで次回」
＜ Version 15.06 ヘッダーファイルを２度読み込む？ ＞
『につづく！』
「この２度読み込むのを回避する方法とかね」
『あれ？　前に教わってない？』
「ぎく」


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

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


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

    (C)KAB-studio 1999 - 2005 ALL RIGHTS RESERVED.
        http://www.kab-studio.biz/
        info@mail.kab-studio.biz
*/
////////////////////////////////////////////////////////////////////

