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

    KAB-studio.h


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

    送信日： 2005/08/15(Mon) No.319
    配信数： 1894
    発行元： まぐまぐ ( URL: http://www.mag2.com/  ID: 0000012198 )
*/
////////////////////////////////////////////////////////////////////

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

2005/08/15 (Mon)
　#pragma twice ホームページ版にアーカイブ追加！
13.05 エラーの返し方
13.06 アルゴリズムの定番・ソート
[ #pragma twice ]
http://www.kab-studio.biz/Programing/PragmaTwice/index.html


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

2005/07/31 (Sun)
　午前中はアニメ。午後に明日の更新分を。あとは Java-ZXY のキャラ起こ
し。わても何がなにやら。ほとはーとは違って「魅せるもの」を。そして
両国駅から京成押上駅。そしてカブカテキョの支払い方法。

2005/08/01 (Mon)
　うつぶせ寝。お昼までカブカテキョ。７月のカブカテキョを振り返る。
カブカテキョの原型はピアノの教室。 Java-ZXY のキャラ起こし。

2005/08/02 (Tue)
　目覚ましがいつのまにか止まってる。 Java-ZXY のキャラ起こし。夜は
JavaA2Z の修正と単語追加。「検索のヒント」を追加。マットレスなし。
明日からお休み。

2005/08/03 (Wed)
（実家里帰りのためお休み）

2005/08/04 (Thu)
（実家里帰りのためお休み）

2005/08/05 (Fri)
　実家から帰ってきました。ホームページの見方とか。実家のまわりをぐる
っと回る。帰ってきたらなんか忙しい。あさってから旅行。某専門学校の
テキスト書きはとりあえず完了。

2005/08/06 (Sat)
　Google AdSense の小切手送付。 午後はカブカテキョ。夕方は死んどく。
Java-ZXY のトップイメージ。明日から旅行です。

2005/08/07 (Sun)
（旅行のためお休み）

2005/08/08 (Mon)
（旅行のためお休み）

2005/08/09 (Tue)
　２泊３日の京都旅行から帰ってきました。１日目は奈良へ。２日目は
比叡山へ。３日目は二条城へ……休みだった。そして更新のしかた。

2005/08/10 (Wed)
　旅行の関係で時間がシフト。中途半端。 JavaA2Z のラフ描きとか。
ストレス溜まってる……。

2005/08/11 (Thu)
　午前中はカブカテキョ。午後と夜は Java-ZXY のラフ。夏コミに出すのは
パイロット版。総選挙はてな。

2005/08/12 (Fri)
　夏コミに出す「Java-ZXY プレペーパー」が進捗遅れる。１ページ目が完
成してない。フルカラー。えらい時間が掛かる……今日明日は徹夜。そして
ファイルサーバー。そして通販希望。

2005/08/13 (Sat)
　ずっと夏コミの原稿描き。『日曜日（８月１４日）　東地区　モ-43b
「KAB-studio」 』です。時間がもったいない。


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

2005/07/31 (Sun)http://d.hatena.ne.jp/kab_studio/20050731
起きてるけど。
[アニメ]ゾイドジェネシス 第17話「怒り」
[アニメ]魔法戦隊マジレンジャーはお休み
[アニメ]おねがいマイメロディ 第18話「時間がいっぱいあったらイイナ！」
[アニメ]交響詩篇エウレカセブン 第16話「オポジット・ヴュー」
カブカテキョ更新
[ほとはー]ほとはー外伝３ P.29
[Prog]ぷらとわ追加。
[買]本屋で買ってきたもの。
[買]まんがタイムきららMAX 9月号

2005/08/01 (Mon)http://d.hatena.ne.jp/kab_studio/20050801
起きた。
[アニメ]ぱにぽにだっしゅ！ 第5話「用に叶えば宝なり」
[Java-ZXY]ノコ
[Java-ZXY]ナタ
[JavaA2Z]単語追加。
[JavaA2Z]Amazon広告のイメージを表示するように修正。
[Machician]第９話 君がそこにいるから (11) [△ ▽]

2005/08/02 (Tue)http://d.hatena.ne.jp/kab_studio/20050802
起きた。
[アニメ]ガン×ソード 第5話「ツインズ・ガード」
[Java-ZXY]ロキ
[Java-ZXY]セト
踏切渡りきれず？横須賀線電車にはねられ女性死亡
[JavaA2Z]「検索結果」ページに「検索のヒント」を追加。
[JavaA2Z]単語追加。
[Machician]第９話 君がそこにいるから (12) [△ ▽]

2005/08/03 (Wed)http://d.hatena.ne.jp/kab_studio/20050803
起きた！
Fate/hollow ataraxia、Amazon入り！
[アニメ]攻殻機動隊 S.A.C. 2nd GIG 第17話「天使の詩」
[アニメ]かみちゅ！ 第5話「ひとりぼっちは嫌い」
８月５日までお休みします。
[Machician]第９話 君がそこにいるから (13) [△ ▽]

2005/08/04 (Thu)http://d.hatena.ne.jp/kab_studio/20050804
「当たってんのよ」＠実家

2005/08/05 (Fri)http://d.hatena.ne.jp/kab_studio/20050805
ただいまです。
Amazonクーポン券の使い道。

2005/08/06 (Sat)http://d.hatena.ne.jp/kab_studio/20050806
ぐっもー。
I’ve GIRLS COMPILATION Collective 
[アニメ]ぺとぺとさん 第4話「家庭の事情」
[アニメ]ふしぎ星の☆ふたご姫 第19話「しずくの国☆ミルロ結婚か？」
Google AdSense小切手
[アニメ]絶対少年……はお休み。
[アニメ]フルメタル・パニック!The Second Raid 第4話「デイライト」
[アニメ]極上生徒会 
　第18話「佐藤仁史、28歳、職業弁護士、両親は資産家、これ以上にない好
条件なお相手」
[Java-ZXY]とりあえず仮タイトル
また地震かよー。
[アニメ]SHUFFLE! 第5話「私の居場所」
更新分は完了、かな？

2005/08/07 (Sun)http://d.hatena.ne.jp/kab_studio/20050807
[C68][Java-ZXY]KAB-studio夏コミ情報
お休みのおしらせ

2005/08/08 (Mon)http://d.hatena.ne.jp/kab_studio/20050808
（旅行のためお休み）

2005/08/09 (Tue)http://d.hatena.ne.jp/kab_studio/20050809
ただいま。
サーバー落ちてるし（泣）。
なるトモ！

2005/08/10 (Wed)http://d.hatena.ne.jp/kab_studio/20050810
ぐっっもー。
[Google AdAsense]支払方法を銀行振込に変更
[アニメ]攻殻機動隊 S.A.C. 2nd GIG 第18話「相対の連鎖」
[アニメ]ゾイドジェネシス 第18話「合流」
[アニメ]おねがいマイメロディ 第19話「ヒーローになれたらイイナ 2!」
sakusakuのご意見番が……。
[アニメ]魔法戦隊マジレンジャー 
　第23話「禁断の魔法〜ロージ・マネージ・マジ・ママルジ〜」
[アニメ]エレメンタルジェレイド 第19話「石ころの想い」
[アニメ]交響詩篇エウレカセブン 第17話「スカイ・ロック・ゲート」
[アニメ]ぱにぽにだっしゅ！ 第6話「藪をつついて蛇を出す」
[Machician]第９話 君がそこにいるから (14) [△ ▽]

2005/08/11 (Thu)http://d.hatena.ne.jp/kab_studio/20050811
起きました。
I’ve GIRLS COMPILATION Collective 
[アニメ]フルメタル・パニック!The Second Raid 第5話「うるわしきシチリア」
[アニメ]極上生徒会 第19話「さらば愛しき友よ」
[買]昨日買ったもの。
寝過ぎ。
[総選挙はてな]総選挙はてな
[総選挙はてな]売買履歴。
[総選挙はてな]売買履歴
トリコロ英語版、その後
[総選挙はてな]売買履歴
[アニメ]アストロ球団 第1話
[総選挙はてな]配当狙いは割に合わない？
はてな、WBSに登場。
[総選挙はてな]売買履歴
[総選挙はてな]売買履歴
[Machician]第９話 君がそこにいるから (15) [△]

2005/08/12 (Fri)http://d.hatena.ne.jp/kab_studio/20050812
起きたー。
[アニメ]ぺとぺとさん 第5話「ミにょコン」
[アニメ]SHUFFLE! 第6話「微笑み」
[総選挙はてな]売買履歴
[総選挙はてな]売買履歴
[総選挙はてな]元本割れはしない？
[総選挙はてな]膠着状態
[Java-ZXY]1ページ目作りかけ
[総選挙はてな]売買履歴

2005/08/13 (Sat)http://d.hatena.ne.jp/kab_studio/20050813
[C68][Java-ZXY]KAB-studio夏コミ情報
起きた。
ご意見番……
疲れた。
疲れた。


////////////////////////////////////////////////////////////////////
// 風雅、舞い
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

■追加・更新単語

呼び出す
呼び出し
関数
System
匿名クラス
無名クラス
Java 2 Platform, Enterprise Edition
J2EE
文字セット
文字集合
キャラクターセット
キャラセット
文字エンコーディング
文字エンコード
IANA
MIME
Content-Type


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


　Version 15.19
DLL をデバッグ！

「今回は、 DLL のデバッグについて説明します」
『 DLL のデバッグ？』
「そう、 DLL と Exe って分かれてるでしょ」
『あ……そういえばそうだよね。デバッグで実行、ってやっぱ Exe でする
んだろうけど、でもそしたら、 DLL のプログラムでブレークポイント掛け
たりするのってどうするんだろう……』
「今回はその辺を説明します。まず、基本的に、 DLL のデバッグは次の
２通りの方法があります」

・ Exe 側のプロジェクトで実行して DLL のソースを参照する
・ DLL 側のプロジェクトから Exe を実行する

『あれ！？　DLL 側から Exe を実行できるの！？』
「できるんです。そういう事ができないと、特に DLL を修正するのが大変
でしょ」
『確かに…… DLL のプロジェクト開いて、そっちでデバッグしつつ修正で
きたらすごく楽そう』
「まぁそれは後回しにして、先に Exe の方から」

・ Exe 側のプロジェクトで実行して DLL のソースを参照する

『 Exe の方って事は、今やってるのだと BuildTest のプロジェクトだね』
「そう、まず BuildTest のプロジェクトを開いて。前回のそのままなら」

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

#include "DLLTestHard.h"
#include "Func.h"

int WINAPI WinMain
    ( HINSTANCE p_hInstance
    , HINSTANCE p_hPrevInstance
    , LPSTR p_pchCmdLine
    , int p_iCmdShow
    )
{
    Output( "あいうえお\n" );

    return 0;
}

「ってなってるはず」
『 DLLTestHard.dll の Output() 関数を呼んでるんだよね』
「というわけでその Output() の方に飛んでみましょう。 Output() を呼ん
でいる所にブレークポイントを置いて」
『……へ？　いきなり？』
「そう、いきなり」
『……うん、ブレークポイント置いた』
「そこで止めて、ステップインしてみて」
『……何もやってないのにいきなり……えっ！？　Func.cpp の Output() 
関数が出てきた！！』
「 DLLTestHard プロジェクトの Func.cpp が開いたでしょ」
『えーっ！？　嘘、こんなに簡単に！？　じゃあ Exe からだと、 DLL って
簡単にデバッグできるんじゃない！』
「そう、実は簡単にデバッグできるんです」
『……なんで？』
「それは、 DLL には〈ソースファイルの場所〉を取得するための仕組みが
あるから」
『つまり、 DLLTestHard.dll が、 Output() が Func.cpp にある、ってい
う情報を持っている、ってこと？』
「うーん、ちょっと違うんだけど。情報そのものは持ってないんだけど、
情報を持ってるファイルの場所を知っている、ってことかな」
『？？？』
「まず、今話した〈デバッグのための情報を持っているファイル〉について
説明します」
『デバッグのための情報を持っているファイル……そのファイルに、どの
関数がどのソースファイルにある、っていう情報が入ってるわけね』
「そういうこと。これは拡張子が .pdb のファイル」
『あれ、結構見たことあるような』
「このファイルは、 Exe でも DLL でも作られるんです。たとえば 
BuildTest の場合、 BuildTest.pdb というファイルが作られます」
『あ、 BuildTest.exe と同じフォルダに置いてある』
「同じく、 DLLTestHard には DLLTestHard.pdb があります」
『ホントだあった！』
「このファイルに、どの関数がどのソースファイルに入っているか、といっ
た情報が入っているわけです」
『へー』
「だから、たとえば DLLTestHard.pdb を DLLTestHard.pdb___ にして、同
じようにステップインしてみて」
『ほい。あ、できない』
「 DLLTestHard.pdb を見つけられなかったから、そこからソースファイル
を参照できなくて」
『ステップインできなかったってわけねー』
「ちなみにこの .pdb ファイルは【プログラムデータベース】と言います」
『プログラムのデータベース、ねぇ』
「ってほどのものでもないんだけどね。デバッグ情報がメインだから。話を
戻すと、この .pdb ファイルを、実は DLL はフルパスで指定しています」
『フルパス！？』
「そう、 D:\Program\DLLTestHard\Debug\DLLTestHard.pdb みたいに、
フルパスの情報を DLL の中に持っているんです」
『だから Exe の方にコピーしても、ちゃんと DLLTestHard.pdb が見つけら
れる、ってこと？』
「そういうこと！　 DLL の中に DLLTestHard.pdb のフルパスが書かれてい
るからこそ、 DLL をどこにコピーしてもちゃんとデバッグができるという
わけです」
『……ねぇ、それじゃ、 DLL のプロジェクトを移動したらデバッグできな
くない？』
「うん」
『……』
「それに、デバッグ機能も含めた DLL をインターネットで配布する時に」
『あ、それ困る！　使ってる人でプロジェクトなんて違うんだから』
「実は pdb ファイルは DLL の置いてあるフォルダと同じフォルダに置いて
おけばちゃんと見てくれるから大丈夫」
『あ、そうなんだ。ん？　でもさ、ソースファイルの方がみつからなくな
い？』
「ソースファイルの方は、ちゃんとダイアログが出て、指定できるように
なっているんです。 Func.cpp を Func.cpp___ にして試してみて」
『ほい。あ、【ソース ファイルの検索】ってダイアログが出た！』
「これで Func.cpp の置いてあるフォルダを指定すればＯＫ」
『こっちはちゃんと変えられるわけね』
「この二段構えだから、プロジェクトを移動したり、インターネットで配布
したりしても大丈夫」
『ちゃんと考えられてるんだね』
「さて、ここまでは Exe 側から使う方。次は DLL 側から」

・ DLL 側のプロジェクトから Exe を実行する

『なんとなく、こっちは大変そうな気がする……』
「さすがに Exe みたいに〈何もしないでできる〉ことはないけど、でも 
Exe くらい簡単だよ」
『え、そなの？』
「というわけで、 DLL 側から、今回の例だと DLLTestHard プロジェクト側
からデバッグする方法を見ていきます」
『はーい』
「まずは、実行する Exe を指定します。メニューの【プロジェクト】-
【設定】ダイアログを開いて」
『いつものダイアログね』
「【プロジェクトの設定】ダイアログの【デバッグ】-【一般】ページを開
いて、その【デバッグ セッションの実行可能ファイル】に、実行する Exe 
のフルパスを入力してください」
『ここに、 BuildTest.exe のフルパスを書けばいいの？』
「そういうこと。そうすると、この Exe を実行してデバッグができます」
『……もしかして、これだけ？』
「そう、これだけ。【OK】ボタンを押して閉じたら、 Func.cpp を開いて」

// Func.cpp

#include <windows.h>
#include "DLLTestHard.h"
#include "Func.h"

// エクスポートする関数。
DLLTESTHARD_API void Output( const char *p_pch )
{
    OutputDebugString( p_pch );
}

「この OutputDebugString() の行でブレークポイントを置いて」
『ほい』
「そうしたらデバッグ実行」
『……普通にデバッグ実行していいの？』
「そう、 Exe と同じようにしてみて」
『なんかドキドキする……えい。あ、ブレークポイントで止まった』
「 BuildTest.exe の方が実行されて、 WinMain() から呼び出されたんで
す」
『……ホントに？』
「というわけで、この状態でステップアウトするか、そのまま
ステップオーバーして進めてみて」
『関数から抜けるってわけね……あ！！　BuildTest.cpp が表示されて、 
Output() 呼んでる所で止まった！！』
「つまり、 DLL のプロジェクトから、 Exe のデバッグができてる、ってこ
と」
『すごーい！！　DLL の方から、普通に Exe のデバッグ実行してるみたい
な感じ！！』
「というかそのままだね。基本的に DLL だからとか Exe だから、っていう
区別はないし」
『でも、 DLL のプロジェクトからは Exe のパスしか指定してないのに、な
んでソースファイルまで開くの？　……あ、もしかして』
「そう、 .pdb ファイルがあるから。一度終了してから、 BuildTest.pdb 
を BuildTest.pdb___ に修正して、デバッグ実行してみて」
『 Exe の方の pdb ファイルを消しちゃうわけね。……あ、ダイアログが出
た』
「【'D:\……\BuildTest\Debugにはデバッグ情報がありません。続行する場
合は[OK]を押してください】っていうダイアログが出ます」
『 BuildTest.pdb が見つからないから？』
「そういうこと。 BuildTest.exe には BuildTest.pdb のフルパスが書かれ
ていて、それを読み込むようになっているから」
『それがないとダメってわけね』
「というか、これは本当は順序が逆」
『逆？』
「 DLL 関係なしに、 Exe 単独でデバッグする時も、この .pdb ファイルを
参照します」
『 BuildTest.exe をデバッグ実行する時には BuildTest.pdb が必要、って
こと？』
「そういうこと。その時も、 BuildTest.exe には BuildTest.pdb の
フルパスが書かれていてそれを参照してます」
『その時、実行する時に pdb ファイルがないと駄目ってことなんだ』
「 Exe はね。 DLL はなくてもいいんだけど、 Exe をデバッグ実行する時
には Exe に対応する .pdb ファイルが必要だから」
『…… DLL は、デバッグ実行できなくてもいい、ってこと？』
「ソースファイルを公開してない場合もあるから。 Win32API みたいに」
『あ、そうだった』

/*
    Preview Next Story!
*/
『こんな設定あるなんて知らなかったなー』
「というわけで、次回はプロジェクトの設定ダイアログについて」
『……なんか、すっごく難しい気がするんだけど』
「今回のとかも？」
『あ、デバッグのは分かりやすかったかも。あれ？』
「というわけで次回」
＜ Version 15.20 「プロジェクトの設定」ダイアログ ＞
『につづく！』
「ま、結構難しい部分かもしれないけどね」
『ええー！？』


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

・このメールを返信しないでください。
・ご意見・ご希望・ご感想は[チョー普通な日記]よりお送りください。
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
*/
////////////////////////////////////////////////////////////////////

