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

    KAB-studio.h


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

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

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

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

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

2005/05/23 (Mon)
　#pragma twice ホームページ版にアーカイブ追加！
5/23 11.19 演算子をオーバーロードしよう
5/23 11.20 オーバーロード関数を作ってみよう
[ #pragma twice ]
http://www.kab-studio.biz/Programing/PragmaTwice/index.html


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

2005/05/15 (Sun)
　アニメを観つつ明日の分を更新。午後３時に落ちる。西武戦を観つつ
ほとはー外伝３描き。ぷらとわストックできてない……。ストックが必要な
もの一覧。ムチャな計画……。

2005/05/16 (Mon)
　一日中あまかい作り。 mod_rewrite とセッション管理がうまくいかず。
POST から GET 。 Singleton 作って中で管理するように。 Struts 使って
るのが……。完成の目処がついた。

2005/05/17 (Tue)
　かぶスタ負荷高過ぎ状態。 RSS へのアクセス頻度が異常だった。静的な
ファイルに置き換えて、さらに JavaA2Z を完全にチューニング。応答時間
５秒以上を１秒ほどまで短縮。もうすぐ Codian のヒット数に追い付くし。

2005/05/18 (Wed)
　一日中遊ぶ。バルドフォースエグゼと西武vs阪神戦。あまかいは先に作る
けど。 JavaA2Z のヒット数が Codian を超えた（爆）。チューニングのお
かげ。そして肩が凝ってる。

2005/05/19 (Thu)
　朝５時までバルドフォースエグゼ。昼１２時からあまかい作り。メール
アドレス登録機能が完成。素直な Struts アプリに。残りは……。ヨドバシ
川崎店まで散歩にいってＣＤ購入。そして応答時間とアクセス数の関係。

2005/05/20 (Fri)
　昨日もバルドフォースエグゼ（爆）。あまかいはユーザー情報まわり
完成。あと２機能。明日中に完成させる！　歯医者行くの忘れた（汗）。
予約しなおして、午後４時２０分から。１時間かかった。

2005/05/21 (Sat)
　あまかいまだ完成してない。ほとんど実装終わってるけど、最後のテスト
がまだできてない。フックメソッド作るか Eclipse でデータ改竄する
か……。当たるかなぁ、似たようなサービスはなさそうだし。


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

2005/05/15 (Sun)
http://d.hatena.ne.jp/kab_studio/20050515
起きた。
[アニメ]ゾイド ジェネシス 第6話「山のアジト」
[アニメ]魔法戦隊マジレンジャー 第14話「燃えろパンチ」
ナイキ独占スクープ！　彼は一体誰？
[アニメ]フリクリ MUSIC DVD 
風雅、舞い追加。
[Prog]ぷらとわ追加。
西武ライオンズvs読売ジャイアンツ
[ほとはー]ほとはー外伝３ P.18
[JavaA2Z]単語追加。

2005/05/16 (Mon)
http://d.hatena.ne.jp/kab_studio/20050516
起きてますよ。
[アニメ]まほらば 第20話「学園祭にて」
[辞職]失業給付。
[病気治療]歯医者。
[あまかい][Prog]難航中（汗）。
キーワードページの広告商品「はてなクリック」リリース
「ナカトジータ」
[あまかい]進んではいるけど……。
[JavaA2Z]単語追加……パス（汗）。
[アニメ]おねがいマイメロディ 第7話「ゴメンって言えたらイイナ！」
[あまかい]ピンチ〜。
[Machician]第７話 灰色の鬼、白き翼 (6) [△ ▽]

2005/05/17 (Tue)
http://d.hatena.ne.jp/kab_studio/20050517
眠い。
[アニメ]勇者王ガオガイガーFINAL 第6話「勇者王!　最期の刻!」
[JavaA2Z]かぶスタ負荷増大中。
[JavaA2Z][あまかい]JavaA2Z を優先します（爆）。
[JavaA2Z]RSS 復活しました。
[JavaA2Z]マイナーバージョンアップ！
[アニメ]こみっくパーティーRevolution 第7話「猪ノ坊でブラボー!」
テレビ埼玉。
[買]ネギま!(10)
画像カウンター
[JavaA2Z]単語追加。
[JavaA2Z]MySQL チューニング。
[Machician]第７話 灰色の鬼、白き翼 (7) [△ ▽]

2005/05/18 (Wed)
http://d.hatena.ne.jp/kab_studio/20050518
起きた。
goo RSSリーダー新バージョン、不具合報告相次ぐ
[JavaA2Z]単語追加。
[JavaA2Z]あ。
負けたー。
[JavaA2Z]単語追加(2)。
[Machician]第７話 灰色の鬼、白き翼 (8) [△ ▽]

2005/05/19 (Thu)
http://d.hatena.ne.jp/kab_studio/20050519
起きてるかも。
[アニメ]極上生徒会 第7話「おせっかいが好き」
[あまかい]KISSで行こう。
[あまかい]メールアドレス登録機能完成！
帰ってます。
[JavaA2Z]単語追加。
[買]今日買ってきたもの。
[Machician]第７話 灰色の鬼、白き翼 (9) [△ ▽]

2005/05/20 (Fri)
http://d.hatena.ne.jp/kab_studio/20050520
起きる。
しまったー！！
[病気治療]歯医者。
[あまかい]管理機能完成！
[JavaA2Z]今日はパス。
[Machician]第７話 灰色の鬼、白き翼 (10) [△]

2005/05/21 (Sat)
http://d.hatena.ne.jp/kab_studio/20050521
起きた。
[アニメ]ふしぎ星の☆ふたご姫 第8話「ゴージャスが決め手☆デコールの戦い」
[アニメ]絶対少年 第1話「憂鬱で奇妙な夏の始まり」
[あまかい]あまかいベータ版リリース！！
[アニメ]交響詩篇エウレカセブン 第5話「ビビット・ビット」


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

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

　南洋の孤島。木々に覆われたその島の南端にある飛行場に輸送機が着陸す
る。
「うっわ……」
　蒸し暑い。
　凄まじい湿気が、不快指数を高めている。
　それより何より。
「あのジャングルの中っていろんな動物とかいそう……虫も……」
「予防接種やワクチンのキットも持ってきてあるから、気になるならしてあ
げるけど」
「その方がいいかも……試合っていつからするんです？」
「ここの時間で午後３時から。時差は東京の２時間後だから変えておいて。
それと、試合の組み合わせ」
　洋一がプリントアウトを渡す。

第１試合：リシュネvs結白舞
第２試合：朴雅樹vs少年
第３試合：リシュネvs少年
第４試合：朴雅樹vs結白舞
第５試合：朴雅樹vsリシュネ
第６試合：少年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

■追加・更新単語

Swing 
カレント 
File 
CharSequence 
シーケンス 
JUnit 
TestCase 
単体テスト 
ユニットテスト 
テストファースト 
Runnable 
スレッド 
マルチスレッド 
sleep 
InterruptedException 
バッファ 
Thread 
synchronizedメソッド 
synchronizedブロック 
同期 
synchronized 
排他 


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


　Version 15.08
スタティックリンクライブラリの仕組み

「前回はスタティックリンクライブラリをとりあえず作って使ってみまし
た」
『かなり駆け足だったね』
「ということで今回はもう一度ゆっくり見てみます。まず、作る方から。
プロジェクト SLLTest っていうのを作りました。ソースファイルは２つ」

// Sub.cpp

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

void Test()
{
    OutputDebugString( "テスト\n" );
}


// Sub.h

void Test();

『関数ひとつだけだよね』
「さて、これをビルドすると」

SLLTest.lib

「というファイルが作られます」
『ホントだ、できてる』
「これは【ライブラリファイル】といって、スタティックリンクライブラリ
の本体です」
『え、これが！？』
「この中に Test() 関数そのものが入っています。だから、たとえば
スタティックリンクライブラリをインターネットで配布するとしたら、この
ファイルは必ず入れなきゃいけないわけです」
『この中に本体があるんだもんね……ん？　今の言い方だと、他に必要な
ファイルがあるの？』
「もちろん、ヘッダーファイルが必要でしょ」
『あ、 Sub.h ！』
「そう。スタティックリンクライブラリはオブジェクトファイルみたいなも
のだから」
『リンクのためのものであって、コンパイルするためには関数の宣言がな
きゃってことね』
「そういうこと。もちろん、最悪の場合ヘッダーファイルはなくてもいいん
だけど」
『そりゃ、関数宣言書いちゃえばいいだけだからそうなのかもしれないけ
ど、そもそもそういう場合って関数のどんな関数が入ってるのかすら分から
ないよーな……』
「さて、次は使う側の話。使う方は、これまでの BuildTest プロジェクト
を使用します」
『？　じゃあスタティックリンクライブラリってあれだけなの？』
「そう、あれだけ。特に難しく考えなくても使えるのが
スタティックリンクライブラリ」
『そうなんだ……』
「さて、使う側ですが、その前に、 SLLTest フォルダは」

D:\Program\SLLTest

「というパスになっているとします」
『前回のおことわりね』
「さて、使う側のソースファイルは1つ、以下のようになっています」

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

#include "Sub.h"

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

『さっきの関数を呼び出すってだけね』
「まず、このプログラムをコンパイルできるようにするため、 Test() 関数
が宣言されている Sub.h ヘッダーファイルをインクルードできるようにしま
す」
『まずはそこからね』
「まず、 BuildTest のメニューの【プロジェクト】-【設定】ダイアログを
開いてください」
『例の設定ダイアログね』
「その中の【C/C++】タブの【プリプロセッサ】ページの、
【インクルードファイルのパス】に」

D:\Program\SLLTest

「と書いてください」
『さっきの、プロジェクトのフォルダね』
「もっと正確に言うと、 Sub.h が置いてあるフォルダ」
『そか、ヘッダーファイルを見に行くんだから、そのフォルダを指定しな
きゃいけないんだ』
「そういうこと。この状態ならコンパイルは通ります」
『え？　これだけでいいの？』
「そう、こういうふうにフォルダを指定することで、インクルード時に
ファイルを探してくれるから」
『ほほう。んじゃビルド』

--------------------構成: BuildTest - Win32 Debug--------------------
コンパイル中...
Main.cpp
リンク中...
Main.obj : error LNK2001: 
外部シンボル ""void __cdecl Test(void)" (?Test@@YAXXZ)" は未解決です
Debug/BuildTest.exe : fatal error LNK1120: 外部参照 1 が未解決です。
link.exe の実行エラー

BuildTest.exe - エラー 2、警告 0

『あ、コンパイル通ったけどリンクエラーになった。そりゃそっか、関数本
体はないんだもんね』
「今はまだインクルードファイルを参照してるだけだからね。この辺も、
スタティックリンクライブラリがオブジェクトファイルと同じってところ」
『なるほどね〜』
「ちなみに、ヘッダーファイルの参照方法はもうひとつあります。
Version 15.05 ( No.305 ) で教えたでしょ」
『あ！　オプションで設定するのだ！』
「そう、【ツール】−【オプション】ダイアログの【ディレクトリ】−
【インクルードファイル】に」

D:\Program\SLLTest

「を追加しても同じことができます」
『どう違うの？』
「設定の方はプロジェクト単位だから、複数のプロジェクトで使う場合には
それぞれのプロジェクトで設定しなきゃいけない、けど」
『オプションの方は Visual C++ の設定だから、プロジェクト全部で使える
ってことね。でもそれはそれでまずくない？』
「だね、だから本当にほとんどのプロジェクトで使うようなライブラリだけ
かな、オプションの方がいいのは」
『ま、こういう方法もあるってことね』
「さて、話を戻して、今度はリンクエラーを取り除きます。先ほどと同じ
く、 BuildTest のメニューの【プロジェクト】-【設定】ダイアログを開い
て」
『この設定ダイアログっていろんな使い道があるのね……』
「まぁほとんどの設定がここでできるからね。【リンク】タブの
【インプット】の【追加ライブラリのパス】に」

D:\Program\SLLTest\Debug

「を書いて」
『これは、 SLLTest.lib を置いてあるフォルダ、ってこと？』
「そういうこと。ヘッダーファイルと同じで、フォルダを指定することでそ
のフォルダにファイルを探しにいってくれます」
『同じねー』
「ただ、ヘッダーファイルと違うのは、ヘッダーファイルは #include で
インクルードしたけど、ライブラリファイルは？」
『あ、そういえば……ソースファイルの方ではそんな感じなかったけど』
「そう、どのライブラリファイルを使うか、っていうのは設定の方で指定し
ます。同じく【インプット】の、【オブジェクト/ライブラリ モジュール】
に」

SLLTest.lib

「を半角スペースを入れて追加して」
『っていうと……』

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

『あ、実際には一行になるけど、こんな感じ？』
「そう、そんな感じ」
『ってゆーか、なんでこんなにいっぱいあるの？』
「これ全部、 API を使うための lib ファイル」
『これ全部スタティックリンクライブラリ！？』
「ううん、違うよ」
『へ、違うの？』
「ほとんどが DLL の。 DLL もライブラリファイルを使うから」
『あ、そうなんだ……それでも、これだけのが必要なんだね……』
「さて、これで使うライブラリファイルを指定できたから」
『ん、ビルドして実行！　うん、〈テスト〉って出力された』
「これでスタティックリンクライブラリが使えました。まとめる
と」

・インクルードファイルのあるフォルダを指定する。
・ライブラリファイルのあるフォルダを指定する。
・ライブラリファイルを指定する。

『この３つね、意外と簡単かも……あ！　そういえば、
ライブラリファイルも、インクルードファイルみたいに
オプションで指定できないの？』
「できるよ。同じように【ライブラリ ファイル】っていう項目があるから
そこでライブラリファイルのあるフォルダを指定すれば同じようにできま
す」
『おー』
「それともうひとつ、ヘッダーファイルもライブラリファイルも、フォルダ
の指定が必要ない方法があります」
『え、そんなこともできるの？　どうやって？』
「 Sub.h と SLLTest.lib を SLLTest フォルダにコピーしちゃうこと」
『……あー、ファイルのコピーね…… Sub.h はともかく、 SLLTest.lib は
ビルドするたびに更新が必要じゃない』
「そうなんだけどね……。それと最後に、ライブラリファイルも、実は
インクルードファイルみたいにプリプロセッサで指定することができます」
『 #include みたいに？』
「そう、こんな感じに」

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

#include "Sub.h"

#pragma comment( lib, "SLLTest.lib" )

int WINAPI WinMain
// 以下略

『あ、 #pragma だ』
「こういう形式でも指定できます。実は MFC ではこの方法を採用してい
て、 MFC のプロジェクトで、ライブラリファイルを全然指定していないの
はこういう理由なんです」
『ってことは、 MFC でもなんでも、ライブラリファイルは必要ってこ
と？』
「そういうこと。 API を使う限り、ライブラリファイルからは逃れられな
いってことで」

/*
    Preview Next Story!
*/
『意外と簡単だったわー』
「そんな火美ちゃんに次回から超ハードな問題を！」
『それってもしかして……もしかする？』
「というわけで次回」
＜ Version 15.09 DLLを作る！ ＞
『につづく！』
「いよいよ DLL ！」
『 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
*/
////////////////////////////////////////////////////////////////////

