#pragma twice

KAB-studio > プログラミング > #pragma twice > 003 Version 1.0 アプリケーションって、なに?

#pragma twice 003 Version 1.0 アプリケーションって、なに?

前のページへ 表紙・目次へ 次のページへ

 Version 1.0 
アプリケーションって、なに?


では、今日からプログラミングの授業を始めます
やったーっ!! どんどんパフパフー!
そんなにうれしいもんかなぁ。とりあえず今日は、一番最初の話、アプリ
ケーションについて見ていきます。じゃぁ火美ちゃん、アプリケーションっ
て何か分かる?
なめないでよねー。こういうファイルのことでしょ?
 マウスカーソルが動き、フォルダ上の Kami.exe をクリックする。
こういう、拡張子がExeのファイルがアプリケーションでしょ。あと色々
と必要みたいだけど、基本的にはこれが中心、って私自身のことだし
そうだね、ちょっと紛らわしいから、このExeのファイルを<実行ファ
イル>って呼ぶことにするね。じゃ、<テキストファイル>は何か分かる?
それはこれでしょ?
 今度はデスクトップに置かれた Memo.txt をダブルクリックする。エディ
タが起動し、文章が表示される。
こういう、文字がいっぱい入ってる、拡張子がtxtのファイルが、テキ
ストファイルでしょ?
……これからは勝手に人のファイルを見ないように
はぁい
さて、じゃぁこの<実行ファイル>と<テキストファイル>の違いは?
拡張子!!
じゃ、やってみようか
 水希は Memo.txt を Memo.exe に変えて、ダブルクリックする。
        <C:\Windows\Desktop\Memo.exe は
            有効な Win32 アプリケーションではありません>
こうなると思ったのよねー
だったら先に言えっちゅーに! で、どう思う?
そうねー、その前に、実行ファイルの拡張子をtxtにしてみたいんだけ

お、いいとこ突いてくるねー。じゃ、これ使ってしてみ
 マウスカーソルが動き、デスクトップにコピーされた Test.exe を
Test.txt に変更する。そしてダブルクリック。テキストエディタが開き、
わけのわからない文字が並ぶ。
なんか変な感じ。空白とか、<・>とか、半角カタカナとか、色が反転し
てたりとか、あ、でも普通の文もあるね、<This program cannot be run 
in DOS mode.>って、<このプログラムはDOSじゃ動かないよん>って意
味だよね
そういうこと。わけ分からない部分もあるし、分かる部分もある。この辺
に少し鍵がある、ってところで、今度は<バイナリーエディタ>でファイ
ルを開いてみるね
バイナリーエディタ?
そ。<バイナリー>っていうのは<素のデータ>っていう意味
えー? なんか違ってそう。<バイ>って<バイリンガル>とかの<ふた
つ>って意味でしょ?
ちゃんとした意味は今度教えてあげるから。バイナリーエディタでファイ
ルを開くと、ファイルの<そのままの中身>が見られるんだ。こういうテキ
ストファイルを用意したから
 フォルダ上の Binary.txt をダブルクリックして、テキストエディタを開
く。中には、

abcdefghi

とだけ書かれていた。
これをバイナリーエディタで開いてみると……
 水希は Visual C++ を起動し、【ファイル】−【開く】のダイアログを開
いて、【ファイルの種類】を【テキストファイル】にし、【読みとり専用ファ
イルとして開く】をチェックし、【用途】を【バイナリ】にしてから、
Binary.txt を選択して【開く】ボタンを押した。画面上に数字が並ぶ。

000000      61 62 63 64 65 66 67 68  69               abcdefghi

なんか、数字が並んでるね。右のはテキストファイルの文字だよね。テキ
ストファイルの中にふたつのデータが入ってるってこと?
ちゃうちゃう。左のは、ただの行番号、つまり<ファイルのどこらへんの
データか>。で、真ん中のが、テキストファイルの中にあるデータ。右のは、
それを<テキストエディタがするように変換した結果>を表示しているだけ
ってことは、テキストファイルの中には真ん中の数字しか入ってないって
こと? ウソだぁ!
まーそう思うのももっともだと思うけどね。ファイルの中は、こんな風に
数字がいっぱい入ってるんだよ。それを、テキストエディタは文字に変換し
て、人間にとって分かりやすい形で表示しているだけ
 61 が a、62 が b、つまり、
数字: 61 62 63 64 65 66 67 68 69 を、
文字: a  b  c  d  e  f  g  h  i
っていうふうに変換するってことなのね。そういえば数字、並んでるし
そゆこと
……ねぇ、この数字をテキストエディタに張り付ければ、あの文字が出て
くるかな
出てこないんだなー、これが。やってみ?
 マウスカーソルが動き、新しいテキストファイルを作成して数字の羅列を
張り付ける。

61 62 63 64 65 66 67 68 69

 一度閉じて、また開く。

61 62 63 64 65 66 67 68 69

私ってバカかも……
でも着眼点いいかもよ
ね、さっきのバイナリーエディタっていうの、使ってみていい?
もちろん。最終的には火美ちゃん自身で使いこなせるようになって欲しい
から、今のうちに慣れておいて
? よくわかんないけど、使ってみるね
 先ほどと同じようにダイアログを開き、先ほどのテキストファイルを開く。
えっと、
行番号:000000 で、
データ:36 31 20 36 32 20 36 33 20 36 34 20 36 35 20 36 で、
それを変換した文字列が、61 62 63 64 65 6
あ、なーんだ、要するにこの数字が文字になっちゃってるってことか。って
ことは、36 の文字が 6 の文字で、 31 が 1 の文字で…… 20 は?
それはスペース
スペースも文字なの!?
そうだよ。スペースだけじゃなくて、改行とか、タブとかも全部数字が割
り当てられてるから
へー。だって、<文字がない>んだから、数字にしなくてもいいじゃない
うーん、そうだねー、あとでちゃんと説明するけど、ビーカーみたいなも
のかな
ビーカー?
そ。水の入っていないビーカーは<0ミリリットル>って表せるでしょ。
つまり<空>を数字で表せる。それを単に20に置き換えてるだけ、ってと
ころかな
パソコンの中にビーカーみたいなのが入ってるの?
まぁ、そんな感じかな。ファイルは、さっき見た<数字>が入る入れ物が
あって、それがずらっと並んでて、そこには必ず何かの数字が入ってるから
だからスペースも数字で、ってことね
で……何の話してたんだっけ
そうよー、なんで実行ファイルは動くのか、説明してよ
そうそう。じゃ、さっきの Test.exe を、バイナリーエディタで開いてみ
ようか

00000   4D 5A 90 00 03 00 00 00   04 00 00 00 FF FF 00 00
00010   B8 00 00 00 00 00 00 00   40 00 00 00 00 00 00 00
00020   00 00 00 00 00 00 00 00   00 00 00 00 00 00 00 00
00030   00 00 00 00 00 00 00 00   00 00 00 00 B8 00 00 00
00040   0E 1F BA 0E 00 B4 09 CD   21 B8 01 4C CD 21 54 68

 以下続く……。
やっぱよく分かんないよね
じゃ、もうひとつ、 Test2.exe 、これも開いてみようか。

00000   4D 5A 90 00 03 00 00 00   04 00 00 00 FF FF 00 00
00010   B8 00 00 00 00 00 00 00   40 00 00 00 00 00 00 00
00020   00 00 00 00 00 00 00 00   00 00 00 00 00 00 00 00
00030   00 00 00 00 00 00 00 00   00 00 00 00 B8 00 00 00
00040   0E 1F BA 0E 00 B4 09 CD   21 B8 01 4C CD 21 54 68

あれ? まったく同じじゃない、これ。わかったー!!
ん?
 Test2.exe って Test.exe からコピーしたんでしょー、水希ちゃんの手
抜きー
ちゃうっ!! 両方とも別の実行ファイル!!
そこまで怒んなくてもいーじゃない。つまり、実行ファイルの中は、全部
こういう風になってる、ってことでしょ?
なんだ、分かってるんだ
ボケただけよ
でもつまんない
うるさいわねっ!!
ま、正解。実行ファイルの頭の部分には、こういう風に特殊な形式、特別
のデータが入ってて、この中に<このファイルは実行ファイルですよ>って
いう情報とかが入ってる
から実行できる、ってわけね
そゆこと。これはただのデータだから、文字に変換できない数字とかあっ
て、そういうのはテキストエディタじゃ表示できないから
ねー、バイナリーエディタってさ、エディタっていうくらいだから、この
データ、書き換えられるの?
変えられるよ
ってことはね、このバイナリーエディタを使えば、それでアプリケーショ
ンが作れるってことよね
作ってみる?
……めんどそう
でしょ。だから、こういう面倒な部分は自動的に処理して、他の、普通の
文章として分かりやすい部分だけを作る。これが、<プログラムを組んで、
アプリケーションを作る>ってこと
それをこれから学ぶってこと!? ってことはその前の説明だけでこんな
長いの!? これからもっともっといろんなこと勉強するの!? めんどく
さー!!
……

/*
    Preview Next Story!
*/
面倒!! もーヤダ!! クニに帰らせてもらいますっ!!
そりゃプログラミングは一朝一夕じゃできないよ。でもアプリケーション
を作ること自体は、次の回でできるようになれるよ
ってことは私がアプリケーション作れちゃうの?
作るだけならね
何よ、その意味深な言い方はー
というわけで次回、
< Version 1.1 とりあえず作ってみよう!! >
も読むベシ読むベシ!!
ま、楽にプログラミング学ぼうってのが間違いなんだけどね
じゃ、私は絶対楽にマスターしてみせるっ!!
 
del.icio.us 登録する
Yahoo!ブックマーク 詳細を表示 users
livedoorクリップ 詳細を表示 livedoorクリップ ブックマーク数
はてなブックマーク 詳細を表示 はてなブックマーク ブックマーク数
RSSに登録
del.icio.us 登録する
Yahoo!ブックマーク 詳細を表示 users
livedoorクリップ 詳細を表示 livedoorクリップ ブックマーク数
はてなブックマーク 詳細を表示 はてなブックマーク ブックマーク数
 
このページは、Visual C++ 6.0を用いた C++ 言語プログラミングの解説を行う#pragma twiceの一コンテンツです。
詳しい説明は#pragma twiceのトップページをご覧ください。