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

    KAB-studio.h


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

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

/*                         来週はお休み                           */

　来週、８月８日分の配信はお休みします。毎年恒例の夏休みです。
　盆と正月に休むとちょうど年５０号になるので（爆）。
　ホームページの方も８月３日〜８月５日、８月７日〜８月９日とお休み
します。御了承ください。


////////////////////////////////////////////////////////////////////
/*             「カブカテキョ」８月受講生募集中！                 */

　「メールでプログラミングの家庭教師サービス」カブカテキョでは、
８月からの受講生を大募集！
　メールを使って、皆さんと一対一でプログラミングを教えます。
　皆さんの環境に合わせて教育方針を決めるので、仕事や大学で必要な
技術を身に着けたり、自分のペースで勉強できたりと自由度が高いです。
　「掲示板で訊いたら怒られた」「周りに訊く人がいない」
「鏑矢正伝に教わりたい」というあなた、是非お申し込みください！
　さらに今月から、月々5,500円の標準コースに加え、月々1,000円の
お手軽コースが追加！！　この格安コースで是非カブカテキョをお試し
ください！

[ カブカテキョ ]
http://www.kab-studio.biz/Katekyo/index.html


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

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

2005/08/01 (Mon)
　#pragma twice ホームページ版にアーカイブ追加！
13.03 「コントラクト」という考え方
13.04 テストプログラム
[ #pragma twice ]
http://www.kab-studio.biz/Programing/PragmaTwice/index.html


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

2005/07/24 (Sun)
　午前中はアニメ観てまったり。今週はゾイドジェネシスが良かった。午後
はカブカテキョと明日の更新分。ほとはー外伝３を描いてなんとか更新完
了。ほとはー外伝３を飛騨渋りに描いた……。あと DVD のダビング。そし
て地震。

2005/07/25 (Mon)
　１０時に起きてコインランドリーで洗濯。お昼はカブカテキョとテキスト
書き。あと JavaA2Z とほとはー外伝３。また仮眠取った。すぱっと落ちる
……。台風で在宅勤務の良さを痛感（爆）。

2005/07/26 (Tue)
　午前中は実家の荷物を受け取ったりカブカテキョ書いたり。カブカテキョ
は受講者増えても大丈夫。午後は JavaA2Z の単語追加。 Java-ZXY は試行
錯誤中。歯医者が病気。そして打ちのめされる。

2005/07/27 (Wed)
　午前中は横浜でコミックスとか購入。お昼以降はのんびり、というか精神
的ダメージ。休日モードにしようかと思ったけど結構働いた。

2005/07/28 (Thu)
　今日も１０時起き。最近、起きるのは自発的に起きられる。それでも午前
中は死んでる。 Google AdSense の小切手換金分が振り込まれる。夜は 
JavaA2Z の単語追加。 Tomcat の関係でめんどい……。今週は調子いい。
カブカテキョ「月２０通」の制限のおかげ？　「ライトサービス」の予定。

2005/07/29 (Fri)
　朝は死んでて、お昼からテキスト書き、ようやく完成。夕方はのんびり。
夜は Java-ZXY のキャラ起こし。来週８月３日〜５日と８月７日〜９日はお
休みします。夏コミ以降に仕事しましょ。そしてダブル定額制。

2005/07/30 (Sat)
　ほぼ休日モード。午前中はサーバー再起動。お昼は JavaA2Z の単語追加
とか。夕方に相鉄星川駅へ。カレーのバーグに行ったり桜木町駅まで歩いた
り。落ちるのはまずい……。


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

2005/07/24 (Sun)
http://d.hatena.ne.jp/kab_studio/20050724
起きますよ。
[Prog]ぷらとわ追加。
[装備]リモコン壊れた？
[アニメ]ゾイドジェネシス 第16話「出会い」
[アニメ]おねがいマイメロディ 第17話「野菜が好きになったらイイナ！」
[アニメ]魔法戦隊マジレンジャー 
　第22話「京都でデート？〜ルーマ・ゴルド〜」
[アニメ]交響詩篇エウレカセブン 第15話「ヒューマン・ビヘイビュア」
[アニメ]トップランナー CLAMP
[ほとはー]ほとはー外伝３ P.28

2005/07/25 (Mon)
http://d.hatena.ne.jp/kab_studio/20050725
おはよう。
[アニメ]ぱにぽにだっしゅ！ 第4話「晴天をほめるには日没を待て」
[アニメ]シティーハンター 「愛と宿命のマグナム」
[JavaA2Z]単語追加。
ER 廉価版
[Machician]第９話 君がそこにいるから (6) [△ ▽]

2005/07/26 (Tue)
http://d.hatena.ne.jp/kab_studio/20050726
起きる。
ソウルキャリバーIII
[アニメ]lain DVD-BOX
[アニメ]ガン×ソード 第4話「そして、雨は降りゆく」
[病気治療]歯医者、ぽしゃる。
[JavaA2Z]単語追加。
[アニメ]おジャ魔女どれみナ・イ・ショ
[アニメ]シティーハンター 「ベイシティウォーズ」
[食][自炊][内臓脂肪][おでんダイエット]食費。
[アニメ]おジャ魔女どれみナ・イ・ショ 
　第3話「泳いでナンボ！ 〜あいこのないしょ〜」
[Machician]第９話 君がそこにいるから (7) [△ ▽]
[Machician設定]3番弾

2005/07/27 (Wed)
http://d.hatena.ne.jp/kab_studio/20050727
起きたのですよ。
帰ってきた。
[アニメ]かみちゅ！ 第4話「地球の危機」
[アニメ]攻殻機動隊 S.A.C. 2nd GIG 第16話「修好母子」
[買]メロブで買ってきたもの。
[JavaA2Z]単語追加。
[Machician]第９話 君がそこにいるから (8) [△ ▽]
[Machician設定]クロフネ
[Machician設定]4番弾

2005/07/28 (Thu)
http://d.hatena.ne.jp/kab_studio/20050728
起きますって。
[アニメ]極上生徒会 第17話「嘘をつきとおせ！」
[アニメ]フルメタル・パニック!The Second Raid 第3話「迷宮と竜」
Get2Cash!!から振込のおしらせが。
また地震かよ！！
[JavaA2Z]単語追加。
[Machician]第９話 君がそこにいるから (9) [△ ▽]

2005/07/29 (Fri)
http://d.hatena.ne.jp/kab_studio/20050729
ビバ起きた。
はてなグラフ
sakusakuでFPS。
[アニメ]苺ましまろ 第3話「家庭訪問」
[アニメ]ぺとぺとさん 第3話「ミントもしくはラベンダー」
[アニメ]SHUFFLE! 第4話「幸せのタマゴ焼き」 
西武来季も存続、伊東監督続投も内定
Google Code Jam 2005
[JavaA2Z]単語追加。
[Machician]第９話 君がそこにいるから (10) [△]
[Machician設定]5番弾

2005/07/30 (Sat)
http://d.hatena.ne.jp/kab_studio/20050730
そして起きた。
台風で思ったこと。
[アニメ]ふしぎ星の☆ふたご姫 
　第18話「かざぐるまの国VS宝石の国☆気球でバトル」
[アニメ]絶対少年 第11話「泣き出しそうな田菜へ走れ」
サーバー落ちとる。
[JavaA2Z]単語追加。
[食]バーグ 「スタミナ ナマ」
ネギま！英語版。


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

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

「……」
　舞は、ただ呆然と待っていた。
「……何を？」
　助けを？
　ホーンを？
　雅樹を？
　死を？
「死――」
　背筋が、凍る、記憶。
　深い深い、泉の底へと落ちていった、あの瞬間。
　あのとき、自分は死んだ。
　何も見えず、何も聞こえず、息さえもできず、喉を掻きむしり、肺を掻き
むしり、水が喉を絞め殺した瞬間
『お前に、力を授ける』
　そう、聞こえた気がした。
　それが、死刑宣告だった。
　死と引き替えに焼き付けられた、碧き泉の力。
　私は、二度死んだ。二度、死んだ。
　……本当に、二度、死んだ？
　掌を、見る。
　私は、洗礼を受けたことで、人生は最悪になるんだと思ってた。
　でも、違った。
　確かに、嫌なことはいっぱいあった。
　今だってそうだ。
　でも、いいこともいっぱいあった。
　この力で、切り開いた道だった。
　私は、この力、嫌いじゃない。
　むしろ、自分の半身だと思っている。
　冷たい冷たい、泉の底へと落ちていく感覚。
　その感覚が、頭を冷やした。
「――なんだ」
　ただ、周りを炎が包んでいるだけ。
「なら、消せばいい」
　舞は、手を上にかざした。
                                                              (続く)


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[KCM]
　目の前の青年は、金髪の、線の細い少年だった。
　その少年が魔法を唱えた瞬間、光の輪が無数に現れ、彼を包んだ。何が起
こるか、それは理解できなかった。それでも。
　殺せば、魔法は止まる。
　リングガンを向け、3番弾に変更、すぐ目の前にいるこの男の頭部を狙っ
て、トリガーを押した。

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

■追加・更新単語

clone
Cloneable
CloneNotSupportedException
ぬるぽ
浅いコピー
深いコピー
シャローコピー
ディープコピー
シンボル
オブジェクト型
Web
Webサーバー
アプリケーションサーバー
Tomcat
Webアプリケーション
JSP
JSPコメント
<%-- --%>
JavaServer Pages
<%--
--%>
スクリプトレット
<%
%>
out
JSP暗黙オブジェクト
JspWriter
<% %>
JSP宣言
<%! %>
<%!
JSP式
<%= %>
<%=


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

　Version 15.18
一から作った DLL を使ってみる

「前回は、一から DLL を作ってみました」
『そんなに難しくなかったよーな』
「押さえなきゃいけないのはこの３つだけ」

・DllMain() を作る
・インポート・エクスポートの切り替えシステムを作る
・エクスポートする関数を作る

「しかも最初の2つは、どんな DLL でも流用できるから」
『一度作っちゃえば特に問題なし、ってことね。最後の関数も、結局関数の
前に、 DLLTESTHARD_API とか付ければいいだけだし』
「そうだね、切り替えシステムのマクロを付ければいいだけ。クラスもそ
う」
『作ってないけど、クラスの方が簡単だよね』
「だね、関数は全部の関数の前に付けなきゃいけないけど、 
Version 15.16 ( No.316 ) で説明したとおり、クラスならクラス単位で付
ければいいだけだから」
『だね』
「さて、じゃあ前回作った DLL を使ってみます」
『おー』
「まず、 BuildTest プロジェクトの Debug フォルダに DLLTestHard.dll 
をコピーして」
『ほい。なんか DLL ふたつになっちゃったけど』
「気になるなら DLLTestEasy.dll の方は削除してもいいから」
『はーい』
「この DLL のコピーって忘れやすいから注意してね」
『ってゆーか、ビルドするたびにコピーっていうのも結構面倒……』
「これ、自動化する方法あるよ」
『え、そうなの！？』
「メニューの【プロジェクト】-【設定】ダイアログ開いて」
『いつものね』
「右端のページに【ビルド後の処理】ってあるでしょ」
『あ、ある』
「この【ビルド後の処理コマンド】ってところに、したい処理を書くと、
ビルドを実行した後に自動的に実行してくれるんです」
『……したい処理、って、処理って何？　何書けばいいの？』
「あー、 DOS のコマンドとか」
『 DOS のコマンドなんて知らない……』
「だね……たとえば、 DLL のコピーは、こういうコマンドになります」

copy D:\DLLTestHard\Debug\DLLTestHard.dll D:\BuildTest\Debug

「あ、フォルダ構成が以下の場合の話だからね」

・DLLTestHard : D:\DLLTestHard
・BuildTest   : D:\BuildTest

『へー、これでファイルのコピーができるんだ』
「先の事を考えると、こういう事もできた方がいいんだけど……」
『こういうコマンド知ってないといけないの？』
「 Windows はいいんだけど、他の OS 、特に UNIX 系だとね」
『そうなんだ……』
「まぁとりあえずはいいから、こういうふうに copy コマンドでファイルの
コピーができるから、これを使えば……ビルドしてみて」
『あ、はい。ビルド……あ』

--------------------構成: DLLTestHard - Win32 Debug-----------------
コンパイル中...
Func.cpp
リンク中...
        1 個のファイルをコピーしました。

DLLTestHard.dll - エラー 0、警告 0

『コピーされた！』
「こうすれば、ビルド後に DLLTestHard.dll をコピーしてくれるから楽」
『うん、楽！』
「さて、 DLL をコピーしたら、これを使ってみます。 BuildTest 
プロジェクトを開いて」
『ほい』
「次に、インクルードファイルのパスの設定をします」
『いくつかあるよね、方法』
「だね、まずはひとつは、【設定】ダイアログで、インクルードファイルの
あるフォルダを設定する方法」
『えっと、メニューの【プロジェクト】-【設定】ダイアログの、【C/C++】
ページの【プリプロセッサ】ページの、【インクルード ファイルのパス】
に DLLTestHard プロジェクトのフォルダのフルパスを書く、だよね』
「正確には DLLTestHard.h とかのヘッダーファイルの置いてあるフォルダ
のフルパス、ね」
『はーい』
「他には？」
『えっと、 Version 15.08 ( No.308 ) でやった、【オプション】
ダイアログの【ディレクトリ】のページの【インクルードファイル】のとこ
に設定する、っていうの』
「そうそう。この方法だと、他のプロジェクトでも共通して使えるから、
そういう共通で使うライブラリはここで登録した方がいいかな」
『なんかそういう DLL 作れるとちょっとかっこいいかも……』
「あと、あとでヘッダーファイルをインクルードするけど、その時に
ヘッダーファイルをフルパスで指定する、って方法もあるかな」
『げ、それかっこよくない』
「だね、まぁ普通はしないかな。だから、ヘッダーファイルの置いてある
フォルダの指定方法は、以下の２つ」

・【設定】ダイアログで指定する
・【オプション】ダイアログで指定する

「この２つのうちどちらかをすれば、インクルードファイルが見られるよう
になるから」
『次はライブラリファイルね』
「そう。インクルードファイルとほとんど同じだけどね」
『えと、【設定】ダイアログの【リンク】ページの【インプット】ページの
【追加ライブラリのパス】に DLLTestHard.lib が置いてあるフォルダの
フルパスを書いて、と』
「これで、ライブラリファイルが見られるようになります」
『これしなくても、さっきと同じように【オプション】ダイアログの
【ディレクトリ】ページで【ライブラリ ファイル】にそのフォルダを
書いてもいいんだよね』
「そう。だから、ライブラリファイルの置いてあるフォルダの指定方法は、
こちらも次の２つ」

・【設定】ダイアログで指定する
・【オプション】ダイアログで指定する

『こっちも、フルパスで指定する、っていうのもあり？』
「一応ね。で、ライブラリファイルの方は、置いてあるフォルダだけじゃな
くて、ファイルも指定しないと」
『そだった。えっと、【設定】ダイアログの、【リンク】ページの【一般】
ページの、【オブジェクト/ライブラリ モジュール】に DLLTestHard.lib 
を書いて、と』
「そうそう、それで DLLTestHard.lib が参照されます」
『これは他に方法あるんだっけ』
「あるよ、 #pragma comment() を使う方法」
『あ、それもさっきの Version 15.08 ( No.308 ) で教わったね』
「だから、ライブラリファイルの指定方法は次の２つの方法があります」

・【設定】ダイアログで指定する
・#pragma comment() で指定する

『どっちの方がいいの？』
「場合によるかな。 #pragma comment() で指定するなら、【設定】
ダイアログで指定してるのも全部 #pragma comment() で指定した方がいい
かも」
『統一しろってことね』
「 MFC は #pragma comment() の方だから、 MFC の方は  #pragma 
comment() で統一した方がいいかも」
『そういえば MFC は【設定】ダイアログの方じゃ全然やってないんだもん
ね』
「さて、ここまでで準備ができました。準備に必要だったことは以下の通
り」

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

『全部終わったけど、意外と面倒だよね』
「まぁ、使う DLL はそうそう増えたりしないだろうから」
『確かに……』
「以上が完了したら、実際にプログラムの方で呼び出します。 Main.cpp 
を開いて、以下のように修正してください」

// 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;
}

「ポイントはふたつ。ひとつはヘッダーファイルのインクルード」

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

「両方とも DLLTestHard のヘッダーファイル。順番間違えちゃ駄目だから
ね」
『え？　なんで？』
「 DLLTestHard.h には何書いてあったっけ？」
『えっと……あ、インポートとエクスポートを切り替えるマクロ』
「でしょ。このヘッダーファイルでまずそのマクロを読み込んで」
『関数本体のある Func.h でそれを使う……だから順番が重要』
「そういうこと。ま、逆にしてもコンパイルエラーになるけど」
『ホントだ』
「あとは、使うだけ」

    Output( "あいうえお\n" );

「関数の呼び出しは普通にできるから」
『だよね、 API だって普通に呼び出せるんだし』
「そういうこと。準備は大変だったけど、ここまでやれば、 DLL の関数も
普通の関数と同じように呼び出せるから」

/*
    Preview Next Story!
*/
『これで DLL を簡単に使えそう』
「そうなってくるとクラスや関数を DLL に出したくなるから」
『……でもそれってデバッグとかできないから大変そう』
「そんなことないよ、ちゃんとデバッグする方法があるんです」
『え、そなの？』
「というわけで次回」
＜ Version 15.19 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
*/
////////////////////////////////////////////////////////////////////

