
/*
    KAB-studio.h
        　ＫＡＢ−ｓｔｕｄｉｏで先週更新した内容
        が格納されたヘッダーファイルです（笑）。

    (C)KAB-studio ALL RIGHTS RESERVED.
        http://www2.justnet.ne.jp/~kabstudio/
        kab-studio@multimedia.design.co.jp

    送信日： 1999/06/28(Mon) No.013
    配信数： 2240（ Mag2 + Pubzine ）
    発行元： まぐまぐ( URL: http://www.mag2.com/  ID: 0000012198 )
    発行元： Pubzine( URL: http://www.pubzine.com/  ID: 590 )
*/

/*            １９９９年６月２８日（月）の更新                */

・Making of "9907.jpg"を更新。
　来月表紙の作成過程をつづるMaking of "9907.jpg"に背景を追加しまし
た。ホントはとっくに完成してるんですが……実はまだ微調整加えるか
も（汗）。だから今回は背景だけ。


/*                チョー普通な日記                */

１９９９年６月２０日（日）：
　世紀を越えて「ハリウッド」に見る作品創作のプロ指向についての考察。
そして逃避の数々。

１９９９年６月２１日（月）：
　ガッコ行ってゲームしてイラスト描いたりしてとゆー平凡な日常。
にゃー。

１９９９年６月２２日（火）：
　アニメ色々。

１９９９年６月２３日（水）：
　アメリカのドラマや書き物やイラストやＫＴＬとか、うだうだうだうだ語っ
てるそんな感じ。

１９９９年６月２４日（木）：
　テレビ購入！　密かにマンガの計画が！？　そのうえ３ＤＣＧまで！！
体力よりまずＨＰの容量が（汗）。

１９９９年６月２５日（金）：
　勢いで部屋の片づけ。そう、カレは綺麗好き。そしてプログラミングにつ
いての興味が失せてきたことを淡々とつづる。カレはどこに行くのか！？

１９９９年６月２６日（土）：
　疲れてるって話と Java について。



/*                    金菜さんの憂鬱                        */

１９９９年６月２０日（日）：
ポインタを返す・最終回
サンプルコード・デリーター関数テンプレート
サンプルコード・スマートポインタ
テンプレート引数で関数テンプレートの引数を明示
サンプルコード・使用例
ポインタにあわせて違うデリーターが呼ばれる
ポインタを何気なく返せる
でも問題もアリ

１９９９年６月２１日（月）：
Ｃマガジン購入
ＳＴＬってもっと広まってもいいと思う
でもドキュメント少ない
組み込みプログラムは難しそう

１９９９年６月２２日（火）：
ＣｐｐＳＬにも難あり
std::random_shuffle() は rand() のために srand() で初期化する必要アリ
Ｃランタイムのスーパーセットだから使ったっていいけど
std::locale で時刻は取得できる？
IShellFolder のサンプル

１９９９年６月２３日（水）：
フーリエ変換プログラムは少しお休み
gnuplot を使用

１９９９年６月２４日（木）：
お便り
RegConnectRegistry() 
サンプルへのリンク
お便り
Unicode/Shift-JISの変換
MultiByteToWideChar() と WideCharToMultiByte() 
変換テーブルへのリンク

１９９９年６月２５日（金）：
お休み

１９９９年６月２６日（土）：
組込型とクラスを一緒に考えるといい
自動的に作られるメンバ関数
逆は？
サンプルコード
i.operator =( 100 );
は無理
ピリオドはメンバ関数が作れない
質問は文法的なものも受け付けます


/*                    #pragma twice                        */

　Version 2.2
変数を作ろう！

「さて！　今回から本格的にプログラミングな感じになってきます」
『やっとよねー。今まで回りのことばかりだったからなんか飽きちゃった』
「これから楽しくなるとは一言も言ってないけどねん」
『げげ』
「じゃ、まずこの前作った関数から見てみようか」

void CCalcDlg::OnBEqual() 
{
    MessageBox( " 1 + 2 = 3 " );
}

『これが＜関数＞よね』
「そ。ダイアログの【＝】ボタンを押すと呼び出されます。で、今回はこの
＜中身＞、つまり中カッコの中だけについて見てみます」
『中カッコの中が、プログラムなんだって言ってたよね』
「そういうこと。この中に＜何をするか＞を書き込みます。じゃ、まずこの
中をこんなふうに書き換えてみましょう」

void CCalcDlg::OnBEqual() 
{
    ここがプログラムの中身です。
}

『……これ、プログラム？』
「違うよん。ビルドしてみれば分かるよ？」
『じゃ、【ビルド】−【ビルド】……って、もしかしてツールバーにボタン
ある？』
「あるよ。＜箱の中に矢印ふたつで砂を詰めていきましょう＞みたいなアイ
コンのボタンがそう」
『じゃ、これ押してと』
　新たにウィンドウが開き、その中に次のような文章が表示される。

-------------------構成: Calc - Win32 Debug--------------------
コンパイル中...
CalcDlg.cpp
D:\Kamichan\Calc\CalcDlg.cpp(179) : error C2018: 文字 '0x82' は
認識できません。
D:\Kamichan\Calc\CalcDlg.cpp(179) : error C2018: 文字 '0xb1' は
認識できません。
（略）
cl.exe の実行エラー

Calc.exe - エラー 32、警告 0

「やっぱダメでしょ」
『やっぱって何よやっぱって』
「ま、ようするに普通の日本語とか書いちゃいけないってことかな。こうい
う注意書き、つまり」
『コメントでしょ？　＜プログラムじゃない文章＞は、こういうふうに』

void CCalcDlg::OnBEqual() 
{
    //ここがプログラムの中身です。
}

『って、 "//" を入れるんだって前に言ってたじゃない』
「そうそう。これがあると、そこから次の行までは＜プログラム＞とは見な
されないから。だから、」

    ここが//プログラムの中身です。

「とか、」

    //ここがプログラムの
    中身です。

「とかはダメだからね」
『はみ出ちゃダメってことよね。でもさ、そしたらコメントを何行も書いた
りとか、１行のちょっとだけをコメントにしたいときとか困るじゃない』
「そういう人のために、こういうコメントのしかたもあるから」

void CCalcDlg::OnBEqual() 
{
/*
    ここがプログラムの
    中身です。
*/
}

「こんなふうに、 "/*" と "*/" で囲むと、改行に関係なくこの中がコメン
トになるから」
『あ、こういうのもあるんだー。どっち使えばいいの？』
「大丈夫だよ、両方使えるから」

/*
    //ここがプログラムの
    //中身です。
*/

「みたいにしても、ちゃんとコメントになってくれるから。あ、文をコメン
トにすることを＜コメントアウト＞って言うから」
『これなら＜ここがプログラムの中身です。＞を＜コメントアウトした＞っ
てことよね』
「で、注意！」
『え、なに？』
「"/*" が何回あっても、 "*/" があるとそこでコメントが終わっちゃいま
す。だから、」

/*
void CCalcDlg::OnBEqual() 
{
/*
    ここがプログラムの
    中身です。
*/
}
*/

「ってことはできません。最後の＜中カッコ閉じ＞がコメントじゃなくなっ
ちゃうから」
『うわめんどー。でもさ、ＶＣのエディタってこの＜コメントの部分＞、色
が変わるんだね』
「だから、こういうミスはあんまりないかな。ま、こういうこともあるか
ら、普通は "//" の方を使っておいた方がいいかな」
『そうよね、関数まるごと要らなくなることもあると思うし』
「じゃ、次は関数をこんなふうに書き換えてみて」

void CCalcDlg::OnBEqual() 
{
    int iBox;
    iBox = 100;
}

『キャーップログラムよプログラムっ』
「それはもういいから」
『ぐすん、で、これってどういう意味？』
「とりあえず１行ずつ見ていこうか。中カッコの中は上から実行されるか
ら、まずこの行から」

    int iBox;

「まず左の空白だけど、これは＜タブ＞って言います」
『風呂釜掃除』
「そりゃバブや！　キーボードに【Ｔａｂキー】ってあるでしょ。あれを押
すとこの空白ができるから」
『嘘よそれー、だってこれスペースじゃない、それも４つくらい』
「う”……えっとね、別にタブでもスペースでもどっちでもいいんだよ、ホ
ントは。ただ左端から距離を開けたいってだけだから」
『それって＜インデント＞ってヤツ？　ワープロとかの』
「そうそう。左から距離を開けて、＜ここは関数の中身ですよー＞ってこと
を分かりやすくしとくわけ」
『で、タブとスペースの違いって？』
「タブは１文字で横にながーく広げられるから、普通はタブを使うんだけ
ど、その＜横幅＞って、設定とかパソコンとか何で見るかとかで違うんだよ
ね」
『ははーん、それって＜メールマガジン＞ってキーワードと関係あるわね』
「ぎくっ、まあそういうこと。ここでは誰もが同じように見られるようにタ
ブをスペース４つに置き換えています。皆さんはタブを使ってください」
『でもそれって、つまりタブとかスペースって好き勝手に入れていいってこ
と？』
「プログラムの意味が通じればね。たとえば、今の行も」

  int               iBox     ;

「でも全然問題ないよ」
『……あれ？　あれれ？　これでビルドしたらエラー出ちゃったよ？』

error C2018: 文字 '0x81' は認識できません。

『だって』
「火美ちゃん、日本語モードでスペース入れたでしょ」
『ダメなの？』
「ダメ！　日本語は普通のプログラムには入れられないから」
『あう〜』
「じゃ、次見るよ。ちょっと飛んじゃうけど、最後の ";" あるでしょ」
『これって＜セミコロン＞よね』
「そ。で、プログラムは、このセミコロンまでが＜１行＞って判断されるか
ら」
『へ？　改行じゃないの？』
「違うんだよね。だから、こんなふうに書くこともできたり」

    int
    iBox
    ;

『なんか、ものすごく自由度高いんだね』
「そうだね、この改行の関係とか、さっきのスペースとタブとか、この辺は
かなり自由だよ。じゃ、一番大事なところ！　"int iBox" について見てみよう
か」
『うんうん』
「これはね、＜数字の入る箱、その名は iBox ！！＞って意味」
『……あのー』
「言ってみ？」
『え？　え……す、数字の入る箱、その名はあいぼっくすぅ！！』
「はい、よくできました」
『そうじゃなくって！』
「でもそのまんまの意味なんだけどなー」
『そのまんま……って、 "iBox" が、数字の入る箱？』
「そ。"int" っていうのは、＜数字の入る箱を作ります＞っていう意味。
で、 "iBox" は、その作られた箱の名前。この名前は勝手に決めていいんだ
よ。ここでは "iBox" ってしただけで」
『だったら "Hako" とかでいいの？』
「うん、いいよ。でも＜何が入る箱なのか＞が分かるように、頭文字に 
"int" の "i" を付けておくと分かりやすいから」
『え”、ってことはこの箱って数字しか入んないの？』
「そゆこと」
『うわ、めんどくさー』
「そんなこと言う自分が恥ずかしくなる日が来るんだよね、いつか……」
『？？』
「ちなみに "int" っていうのは "integer" つまり＜整数＞っていう意味だ
から」
『整数の入る箱を作るから "int" ね』
「で、この箱のことを＜変数＞って言います」
『専門用語でへんすー、ね。ってことは、箱の中に入れる数字って変えられ
るんだ』
「そういうこと。で、次の行でこの箱の中に "100" っていう数字を入れま
す」

    iBox = 100;

『質問！』
「はい、火美ちゃん」
『なんで【＝】で入るんですかぁ？』
「逆でーす。プログラミングの世界では、【＝】っていうのは＜右のものを
左に入れる＞っていう意味なんでーす」
『変なのー』
「そう？　まずさ、普通に＜イコール＞って考えれば、これは間違ってない
よね」
『確かに…… "iBox" に "100" が入るんだったら、等しいっていうことは
分かるけど……でもさ、それでも＜右のが左＞って納得いかないなー』
「じゃーさ、"=" を "is" に置き換えてみれば？」

    iBox is 100;

『＜ iBox は 100 ＞ってことよねー。まーこれは逆は無理だけどね。でも
なんかなー』
「実際のところ！！」
『な、なに？』
「"+" とか "-" とかいろんな記号が使えるんだけど、実はこれそれぞれ
＜右からか左からか＞っていうのが決まってるんだよね」
『……どういうこと？』
「つまり、 "=" は＜右から左＞に決まってるけど、他の記号は必ずしもそ
うじゃないってこと。だから、これはそういうものって憶えるしかないかな」
『え〜？』
「下手にね、 "=" とか思っちゃうからいけないんだと思うよ。プログラミ
ングではまったく別物！　って考えた方がいいかな」
『あ、それならＯＫかなー。よーするにフツーのとプログラミングは違う、
ってことね』
「そういうこと。じゃ、問題！　次はどんなことしてる？」

void CCalcDlg::OnBEqual() 
{
    int iHensu;
    iHensu = 10000;
}

『えっと、１行目で＜数字を入れる箱＞、名前は "iHensu" っていうのを
作って、２行目でその中に数字を入れた、ってところかな』
「そう！　もうバッチリじゃない」
『でさ……それ、どう確かめるの？』
「それは次回！！」



/*
    Preview Next Story!
*/
『変数作った！　数字入れた！　でも見られないんじゃねー』
「見るの結構大変だからねー。メモリってとこに入ってるから」
『ＤＩＭＭってヤツ？』
「そ。＜パソコン分解するの？＞とかゆーお約束は却下」
『と、というわけで次回』
＜ Version 2.3 変数の中を見よう！ ＞
「につづく！！」
『でもメモリなら見られるよ？』
「定規、割り算、は虫類、両生類、牛丼、お昼の顔……」
『多すぎるよねー。今日の天気は？』
「くもり。しまったぁ！！」



/*            １９９９年７月５日（月）の更新予定                */

・表紙を７月バージョンに！！
　というわけでMaking of "9907.jpg"で紹介している「７月表紙イラスト」
の掲載です。出来は……うーん、７５点くらいかなぁ（汗）。

・Making of "9907.jpg"最終回！
　来月表紙の作成過程をつづるMaking of "9907.jpg"も最終回！　
「キャラ」と「合成」の２ページを追加する予定です。しかし……半年後く
らいにもう一度作りなおそっと（汗）。


/*                        ご注意！！                        */
/*

　このメールマガジンをそのまま「返信」すると、作者のメールアドレス
（kab-studio@multimedia.design.co.jp）へと転送される仕組みになってい
ます。「まぐまぐ」もしくは「Ｐｕｂｚｉｎｅ」の管理者へメールを送りた
い場合には、直接そちらへメールを送ってください。

*/
/*

　このメールマガジンの購読登録を解除する場合には

http://www2.justnet.ne.jp/~kabstudio/Info/MailMagazine/

　が便利です。また、購読解除についての詳しい情報は、
登録時に送られてきた「まぐまぐ」もしくは「Ｐｕｂｚｉｎｅ」からの
メールをお読みください。

*/
/*

　本誌のバックナンバーはＫＡＢ−ｓｔｕｄｉｏにはありません。
　まぐまぐの

http://bigbeat.tegami.com/~mgsearch/frame.cgi?id=0000012198

　にありますのでそちらをどうぞ。

*/
/*
    KAB-studio.h
    Weekly Mail Magazine.
    Written by Kaburaya Seiden.

    (C)KAB-studio ALL RIGHTS RESERVED.
        http://www2.justnet.ne.jp/~kabstudio/
        kab-studio@multimedia.design.co.jp
*/


/*                    See you next week!!                    */


