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

    KAB-studio.h


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

    送信日： 2005/06/20(Mon) No.312
    配信数： 1902
    発行元： まぐまぐ ( URL: http://www.mag2.com/  ID: 0000012198 )
*/
////////////////////////////////////////////////////////////////////

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

2005/06/20 (Mon) 14:00
　カブカテキョ、仮ユーザー登録締切！
[ カブカテキョ ]
http://www.kab-studio.biz/Katekyo/index.html

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

2005/06/20 (Mon)
　風雅、舞い ホームページ版にアーカイブ追加！
第章 剣と魔法
[ 風雅、舞い ]
http://www.kab-studio.biz/Novel/Fuga/index.html

2005/06/20 (Mon)
　#pragma twice ホームページ版にアーカイブ追加！
12.05 double の中身・指数部編
12.04 浮動小数点型
[ #pragma twice ]
http://www.kab-studio.biz/Programing/PragmaTwice/index.html


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

2005/06/12 (Sun)
　徹夜明けで速攻寝て、昼１２時半に起きてアニメを観つつ明日の更新分
を。ウェブ家庭教師のページはまだ。「明日午前１１時」に。明日からの
一週間で人生が決まるよーな。

2005/06/13 (Mon)
　メールでプログラミング家庭教師「カブカテキョ」の仮ユーザー登録開
始、でもまだ０人（爆）。無料の掲示板の方がいいんだなぁ。それとも
ブランドイメージが定着してないのか。３時から歯医者。帰ってからは
ぐだーっと。２日連続徹夜はきつい。

2005/06/14 (Tue)
　カブカテキョリニューアル。広告貼りまくってるから100pvしてる。登録
数はまだ１人（汗）。５名くらいでも始める？　明日某外資系IT企業の面接
へ。掲示板での回答を見て、絶対需要があると思ったんだけど……。

2005/06/15 (Wed)
　今週はダメダメだ。３時から某外資系IT企業の一次面接。自己紹介とかを
アドリブで作る。質問特になし。好印象っぽい？　カブカテキョ登録数３名
です。そして.NET対応だったら……。そしてリスク高すぎる。

2005/06/16 (Thu)
　ほとはー外伝３を１ページ。萌えJava本の構想を練ったり。新企画。
ウェブコミックで。フルカラーで１ヶ月。カブカテキョは３名。そしてこう
いうのも。そして社会的信用がない。

2005/06/17 (Fri)
　プロジェクターが点かない。昨日ランプ交換したのが原因らしい。新しい
のに交換することに。ほとはー外伝３を１ページ。萌えJava本「Java-ZXY」
のラフとか。絵柄変えます。夕方に横浜でコミックス購入。３時間掛けて
徒歩で帰宅。日本全国歩き尽くして頭の中に地図を作りたい。そしてやなこ
と。

2005/06/18 (Sat)
　昨日の散歩で疲れた。ほとはー外伝３を１ページ。月曜更新分とか。
ぷらとわのストックがないから作らないと。疲労が。ダイエットしてるのも
あるんだろうけど。就職する気ない（爆）。プロジェクターのランプが暗い
……。


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

2005/06/12 (Sun)
http://d.hatena.ne.jp/kab_studio/20050612
今から帰ります。
[アニメ]ゾイド ジェネシス 第10話 「迷い」
あー。
KAB-studio.h 縮刷版更新。
[ほとはー]ほとはー外伝３ P.22
[アニメ]おねがいマイメロディ 第11話「お料理上手になれたらイイナ！」
風雅、舞い追加。
[アニメ]魔法戦隊マジレンジャー 第18話
　「力をあわせて〜マージ・ジルマ・ジー・ジンガ〜」
[Prog]ぷらとわ追加。
[アニメ]交響詩篇エウレカセブン 第9話「ペーパームーン・シャイン」
PS3はスーパーコンピューターに。

2005/06/13 (Mon)
http://d.hatena.ne.jp/kab_studio/20050613
[教職][カブカテキョ]カブカテキョ
[カブカテキョ]賽子は投げられっぱなしだ……。
[アニメ]まほらば 第23話「紅葉の中で」
そろそろ歯医者。
[病気治療]歯医者
[アニメ]絶対少年 第4話「光誘う樹木の宮」
オルタナティブ・ブログ
[Machician]第８話 アイとコイと (1) [△ ▽]

2005/06/14 (Tue)
http://d.hatena.ne.jp/kab_studio/20050614
[カブカテキョ]全面改修。
起きた。
[アニメ]勇者王ガオガイガーFINAL 第10話「超勇者黙示録！」
[アニメ]こみっくパーティーRevolution 第11話「恐怖の毒同人」
[JavaA2Z]単語追加。
鉄拳6
[Machician]第８話 アイとコイと (2) [△ ▽]

2005/06/15 (Wed)
http://d.hatena.ne.jp/kab_studio/20050615
[カブカテキョ]生徒募集中！
起きたのです。
そろそろ面接。
帰ってきた。
寝てた。
[就職活動]某外資系IT企業・一次面接
“ライブドラ”大好きホリエモン？
[Machician]第８話 アイとコイと (3) [△ ▽]

2005/06/16 (Thu)
http://d.hatena.ne.jp/kab_studio/20050616
[カブカテキョ]生徒募集中！
また11時半かー！
[アニメ]攻殻機動隊 S.A.C. 2nd GIG 第11話「名も無き者へ」
[アニメ]魔法先生ネギま！ 第24話
[アニメ]極上生徒会 第11話「ウイニング・ファイブ」
複数アカウント機能の追加について
ブラザーのコンパクトレーザー複合機「DCP-7010」欲しい！
これもクールビズ、「空調服」が世界進出
[装備]プロジェクターランプを交換。
[JavaA2Z]単語追加。
[JavaA2Z]単語追加。
[Machician]第８話 アイとコイと (4) [△ ▽]

2005/06/17 (Fri)
http://d.hatena.ne.jp/kab_studio/20050617
[カブカテキョ]生徒募集中！
[装備]ランプ壊れる……。
[Java-ZXY]ヒロイン案
[買]横浜で買ってきたもの。
[Machician]第８話 アイとコイと (5) [△]

2005/06/18 (Sat)
http://d.hatena.ne.jp/kab_studio/20050618
[カブカテキョ]生徒募集中！
起きてますが……。
[買]ぱにぽに 7巻 初回限定版
[JavaA2Z]単語追加。
[アニメ]絶対少年 第5話「約束の重さと夢の軽さ」


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

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

　第２試合：朴雅樹vs少年。
「事実上の決勝戦なんじゃねーのか？」
　ジャケットを脱いでから、火の点き具合を確認する。湿気はそれほど影響
していないようだった。
　遠くでホーンが鳴る。
「フライングだっ！」
　遠くから振動が伝わり、津波のような衝撃波が雅樹の近くまで届く。が、
その方向は大きく外れていた。
「やっぱ、ＡＰは遠距離戦が得意そうに見えて、索敵能力が低すぎるから生
かせてないんだな」
　ま、俺も穂香が居なきゃどうしようもないんだが。
　その穂香の声を聞いて、疾る。木々の間を抜け、岩を飛び越えるその姿は
獣を感じさせる。地形を不利に感じさせないその動きは、人のものを超えて
いた。
「おっと」
　雅樹は立ち止まり、その前を衝撃波が駆けていく。巨木が割れ、葉が吹き
飛ぶ。通り切ってからその痕を超えてさらに走る。
「！」
　刀を抜き、振る。
　音もなく刀が少年の拳を受け止める。
　刀が支えを失い、少年が雅樹の背後に回る。
　少年の手刀が雅樹の脇をすり抜け、雅樹は刀を真後ろに薙ぎ、刃が少年の
胸を切り裂く。
「！？ッッ……」
　少年は大きく距離を取り、雅樹はゆっくりと振り向く。
「まさか、そこまでとはね……本当に信頼してるんだね」
「何十年一緒にいると思ってるんだ。それに」
　刀を蒼炎が包む。
「お前は、決して速くない」
「！！」
　少年が咄嗟に構える。
　……なぜ構えるんだ、僕は。
「まず、お前達ＡＰは別に空が飛べるわけじゃない」
　雅樹が踏み込み、刀を振る。少年は炎を避けるように跳んで躱す。
　切っ先が触れ、少年の上腕が裂ける。
「跳ねるだけだから、限界がある」
                                                              (続く)


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[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

■追加・更新単語

MSDN
キュー
サブインターフェイス
スーパーインターフェイス
エスケープシーケンス
\
\t
\n
\r
\"
\'
\\
\u
タブ
タブ文字
スペース
"
'
改行文字
改行


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

　Version 15.12
API も DLL ！

「前回は DLL のエクスポートとインポートについて説明しました」
『関数をエクスポートするとライブラリファイルにその関数の情報が出力さ
れて、呼び出す方はインポートしてその情報を取り込んで、実行した時に 
DLL を探してその関数を呼び出す、と』
「このあたりをもう少し理解するために、 API の呼び出しについて見てみ
ます」
『 API ？　なんでいまさら API ？』
「 API も DLL だからね」
『え、そうなの？』
「そう、たとえば C:\WINNT\system32 フォルダにある kernel32.dll とか
user32.dll とかの DLL が API の入っている DLL です」
『へー、この中に入ってるんだ』
「たとえば、 API のひとつ、 MessageBox() 関数」

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

int WINAPI WinMain
    ( HINSTANCE p_hInstance
    , HINSTANCE p_hPrevInstance
    , LPSTR p_pchCmdLine
    , int p_iCmdShow
    )
{
    MessageBox( NULL, "テスト", "テストダイアログ", MB_OK );
    return 0;
}

「プロジェクトは BuildTest で試してください」
『フツーにダイアログ出すやつね』
「さて、この MessageBox() がどの DLL にあるか」
『え？　それ調べる方法あるの？』
「 MSDN に書いてあります。 MSDN の MessageBox() のリファレンスを見て
みて」

MessageBox

（略）

対応情報

  Windows NT: バージョン 3.1 以降
  Windows: Windows 95 以降
  Windows CE: バージョン 1.0 以降
  ヘッダ : winuser.h 内で宣言
  インポート ライブラリ : user32.lib を使用

「英語版はこう書いてあります」

QuickInfo
  Windows NT: Requires version 3.1 or later.
  Windows: Requires Windows 95 or later.
  Windows CE: Requires version 1.0 or later.
  Header: Declared in winuser.h.
  Import Library: Use user32.lib.
  Unicode: Implemented as Unicode and ANSI versions on Windows 
                                                   and Windows NT.

「特に重要な所は【インポート ライブラリ】とか【Import Library】って
書いてあるところ」
『 user32.lib って書いてある、ライブラリファイルだ！』
「つまり MessageBox() は user32.lib に情報があって、 user32.dll に
エクスポートされてる、ってことです」
『これを見れば、ライブラリファイルと DLL が分かるってことなんだ。
……もしかしてそれって、こういうふうに書かれてないとわからないって
事？』
「基本的にはそういうこと。一応ライブラリファイルの中からエクスポート
された関数を抜き出す方法とかはあるけど、そういうのを調べない限りは分
からないから」
『不便ねー。自分でライブラリを作ってそれを他の人が使う場合とかは、そ
ういうドキュメントも用意しなきゃいけないってことなんでしょ？』
「そうなるんだよね。ちょっと面倒かも」
『……でも、これでライブラリファイルとか分かったわけだけど、実際にこ
れって使ってるの？』
「はい、問題。 DLLTestEasy.lib を使う際、このファイルをどこで指定し
たでしょう」
『 Version 15.09 ( No.309 ) でやったね、メニューの【プロジェクト】-
【設定】ダイアログの【リンク】タブの【一般】の
【オブジェクト/ライブラリ モジュール】に……あ！』

kernel32.lib
user32.lib
gdi32.lib
winspool.lib
comdlg32.lib
advapi32.lib
shell32.lib
ole32.lib
oleaut32.lib
uuid.lib
odbc32.lib
odbccp32.lib
DLLTestEasy.lib

『こんなにライブラリファイルが指定されてる！　user32.lib もある！』
「ちなみに、これは AppWizard でプロジェクトを作ったときにセットして
くれてるデフォルトのライブラリファイル。だから、 API のリファレンス
を見て、使う必要がないライブラリファイルがあれば」
『削除していい、ってこと？』
「そう。実際に user32.lib だけで試してみて」
『うわ、怖い……あ、でもビルド通った。実行もできた』
「この辺は、 AppWizard がしてくれてるから普段は気にしないけど、必要
な API を元にライブラリファイルの指定をする、っていうのが本当の手順
かな」
『でもそれは難しそう……』
「ま、逆に言うと、とりあえずライブラリファイルを指定する、っていうの
も問題はないから」
『今まで問題なかったんだもんね』
「それと、 MFC の場合はちょっと違います」
『え、違うの？』
「 MFC を使うプロジェクトを開いてみて。この欄が」
『あ！　全然何も書かれてない！！』
「そう、 MFC の場合には、別の方法でライブラリファイルを指定している
んです」
『別の方法……もしかして、 Version 15.08 ( No.308 ) でやった 
#pragma comment を使った方法のこと？』
「そう！　Visual C++ のインストールフォルダが 
C:\Program Files\Microsoft Visual Studio だとすると、その下の 
VC98\MFC\Include に MFC のインクルードファイルのフォルダがあるんだけ
ど、その中に AFX.H ってファイルがあるでしょ」
『お、 afx って名前のヘッダーファイル』
「この中にこんなふうに書かれています」

#pragma comment(lib, "kernel32.lib")
#pragma comment(lib, "user32.lib")
#pragma comment(lib, "gdi32.lib")
#pragma comment(lib, "comdlg32.lib")
#pragma comment(lib, "winspool.lib")
#pragma comment(lib, "advapi32.lib")
#pragma comment(lib, "shell32.lib")
#pragma comment(lib, "comctl32.lib")

『おおっ、 #pragma comment でライブラリファイルが指定されてる！！』
「 MFC のプロジェクトの場合は、 MFC のヘッダーファイルでこういう形で
ライブラリファイルを指定していて、そしてそのファイルを StdAfx.h で
インクルードしているから」
『設定ダイアログの方にはないわけねー』
「ここまでで重要なのは、 API も DLL を使っていること、そして、そうい
う DLL と、自分で作った DLL に大きな違いはないってこと」
『同じ DLL で、同じように作れるってことね』
「作れるのもそうだし、呼び出すのもそう。 DLL を使う、ってことに抵抗
があったかもしれないけど」
『気付いたら使ってた、だから気にするな？』
「まぁそういうことだね。 DLL を単純に使う時には、難しいこと考えなく
ていいから」
『……ちょっとマテ。それは、難しい場合があるってこと？』
「うん。 DLL の使用方法には、次の３つがあります」

・ DLL 内の関数を普通に呼び出す。
・ DLL 内の関数を動的に見つけて呼び出す。
・ DLL 内のクラスを使う。

「厳密に言うとこの３つは同列に並べちゃいけないんだけど、現実的には、 
DLL の使い方はこの３つ」
『今まで使ってきた方法は？』
「一番上の」

・ DLL 内の関数を普通に呼び出す。

「です。次の」

・ DLL 内の関数を動的に見つけて呼び出す。

「は、 DLL 内の関数を特殊な方法で呼び出します」
『特殊な方法？』
「これは次回説明するからそれを見てもらった方がいいかな。最後の」

・ DLL 内のクラスを使う。

「これは、関数と同じ方法でクラスを使う方法。これは簡単なんだけど、一
応最後に説明します」
『そういえば、最初に AppWizard が作ってくれたソースの中にクラスあっ
たよね』
「あれを使えば簡単にできるけど、ちょっと遠回りして説明していくことに
します。というわけで、次回に続く！」

/*
    Preview Next Story!
*/
『確かに DLL 使うだけなら簡単そうだけど、なんだか裏がありそう』
「あります」
『あからさまに！！』
「簡単に使えるけど、思わぬ所に落とし穴が」
『落とし穴嫌だー』
「というわけで次回」
＜ Version 15.13 DLL の実行中リンク ＞
『につづく！』
「じゃ、次回は落とし穴なしで」
『お』


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

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

