#pragma twice

KAB-studio > プログラミング > #pragma twice > 041 Version 3.16 String と Version

#pragma twice 041 Version 3.16 String と Version

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

 Version 3.16
String と Version

今回は、残ってるふたつのリソース、 String Table と Version について
見てみることにしましょう
リソースって結構種類あるよねー
んじゃまずは String Table から
えっと、ワークスペースの ResourceView の String Table をダブルクリ
ック!
 リストが表示される。一番左に【ID】、中央に【値】、右に【キャプショ
ン】。その下にひとつだけデータがある。 IDS_ABOUTBOX 101 Calc のバー
ジョン情報。
なにこれ
実は火美ちゃんは一度この〈Calc のバージョン情報〉って文字を見たこ
とがあるはずなんだけど
えー? ちょっとまって今記憶に検索掛けるから
便利やね……
あ!
 Calc を実行させ、 Calc ダイアログ左上のアイコンを左クリックする。
そのメニューの最後に【Calc のバージョン情報】と書かれてる。
これ!?
当たり! 試しにこの文字列変えてみ?
??
とりあえず Calc ダイアログを閉じて、さっきの String Table を表示さ
せて、 IDS_ABOUTBOX を右クリック、メニューから【プロパティ】を選んで
なんだいつものヤツねー。あ、ダイアログ出たよ、エディットボックスの
ときとかのと似たの。ちゃんと【キャプション】のとこに〈Calc のバージョ
ン情報〉って書いてある
これを好きなように書き換えて
んじゃ〈バージョン情報じゃ!〉にして、ビルドして実行して右クリック
メニュー! うん、メニューの最後が【バージョン情報じゃ!】になった!
というわけで、 String Table リソースには、文字列を格納することがで
きます
メニュー用の?
ううん、基本的に自由に使えるから。えっと、 CalcDlg.cpp に
CCalcDlg::OnInitDialog() メンバ関数の定義があるでしょ
あ、 SetIcon() とか使ってアイコンセットしたのだよね。ファイルビュー
で CalcDlg.cpp 選んで、うんあったよ
その中で……

    strAboutMenu.LoadString(IDS_ABOUTBOX);

 IDS_ABOUTBOX って〈Calc のバージョン情報〉の ID だったよね。で、
Load なんたらって関数ってことは、アイコンみたいに String Table の文
字列もロードできるってことなんだ
そういうこと。ま、実際に使うには文字列ってものがもっとよく分かんな
いと無理だからそれはまた今度ね
 うん、なんか難かしそ……。でもさ、文字列を String Table ってのに
置くのって意味あんの? ダイアログの名前変えた時みたいに、文字列をプ
ログラムの中に直接書き込めばいいじゃない
もちろんそれだけのメリットがあるから。まず、String Table に文字列
を全部まとめておくと、修正が楽
どゆこと?
プログラムに直接書き込むと〈どこにどの文字列を書いたのか〉探すのが
面倒ってことだね
そういえば、あのときはボタンを押したときのメンバ関数に書き込んだん
だもんね。そーゆーの憶えてないといけないのは面倒かも
ふたつめは、書き換えたあとビルドするのが楽
これはホントそう思う! リソースだけ書き換えてビルドしても、すぐ終
わるんだもん。これはいーよねー
みっつめは言語の問題
言語?
リソースビューの【String Table】のプロパティを見て
はーい。あ、【言語:日本語】だって
実は、同時に複数の言語のリソースを含めることができるんだよね。日本
語のダイアログと英語のダイアログとか
【String Table】も英語と日本語みたいにできるの?
もちろん。で、これはウィンドウズの設定で自動的に切り替わるようにな
ってるから
つまり、リソースに文字列を入れておくと、いろんな言語に対応するのが
楽ってことねー
そういうこと。ま、今は重要じゃないけどね
そりゃ英語版出す気はないけど……
さて、今度は〈バージョン情報〉について見てみましょう。【ダイアログ】
の IDD_ABOUTBOX を開いてみて
これってさっきの〈Calc のバージョン情報〉を選んだら出てくるのだよね
そうそう。このダイアログは、ユーザーに〈このアプリの名前、バージョ
ン、著作権〉を知らせるためのもの
〈アプリの名前〉はいいけど……
バージョンはねぇ、〈どれだけ新しくしたか〉の目安になる数字。アプリ
を一度リリースしたあと、ミスとかが見つかって直して、それをまたリリー
スするときには、このバージョンの数字を少し増やして出す
あー、そーゆーのそういえばアプリであるよね
たとえば今使ってるこの Visual C++ のバージョンは 6.0 。つまり単純
計算だと6回手が入れられてるってことだね
これが、このダイアログに書かれてる 1.0 ってゆーののこと?
そう。バージョンの付け方は結構自由に付けられるから、こうでなくても
いいけどね
たとえば?
たとえば、最初にリリースするのが機能の全然ないのなら〈これからどん
どん新しくする〉って意味で 0.01 ってバージョンにするとか
じゃあ 100 とか 10000 とかから始めてもいいの?
いや、まぁ、確かに悪くはないかなぁ……
……でもやめた方がいいってことね。〈著作権〉は?
これは誰が作ったか。 Copyright (C) 1999 のあとに名前を書き込めば
〈このアプリケーションを配布したり改変したりする権利はこの名前の人物
にある〉って意味になるから
そういえばテレビとか雑誌でもよく見るよね、この Copyright って
そうそう。勝手に売られたりしないように、ちゃんと書かないとね
あたしだったら〈 Copyright (C) 1999 火美ちゃん〉みたいに?
あ、名前は英語の方がいいかな、世界共通ってことでね
そういえば、コミックスの最後に載ってる〈著者〉ってローマ字でも書い
てあるもんね。 1999 って1999年ってことだよね。これ 2000 にしなく
ていいの?
もちろんするよ。この数字はプロジェクトを作った年が書かれてるだけだ
から。この年数は、アプリケーションをリリースした年にしないとね
誰もまさかこんな時間がかかるとは思わなかったもんね〜
う”
あとアイコン、 IDR_MAINFRAME のだよね
そ。このダイアログに張り付いてるののプロパティで、どのアイコンを表
示するか決められるから
バージョン情報ダイアログってこれだけでいーの?
基本的にはね。ただ、最近はホームページアドレスやメールアドレスも載
せることが多いかな
アニメーションしたりするのもあるよね
ま、それはCD−ROMとかで提供できないとね。本体よりバージョン情
報の方がファイルサイズ大きいってなったら
うわーそれやだ
じゃ、最後にもうひとつのバージョン情報
もうひとつ?
んーと、ウィンドウズフォルダを、フォルダかエクスプローラーで開いて
みて
はーい。Cドライブ、 Windows っと。で?
そのなかに Notepad.exe ってファイルあるでしょ。とりあえずダブルクリ
ックしてみて
って、これってメモ帳だよね……うん、メモ帳だよ
んじゃ閉じて、今度はそのファイルのプロパティを開いて
右クリックメニューの【プロパティ】っと。ダイアログ出た……あ、【バー
ジョン情報】のページがある!
実行ファイルや DLL にはたいがいこれが付いてるから
へー、知らなかったなー。これにもバージョン情報とか、著作権とか書い
てあるんだね。あと会社名とかいろいろ……
ある意味、さっきのバージョン情報ダイアログよりもこっちの方が大事か

そりゃ、さっきのは実行しなきゃわかんないもんね
じゃ、 Calc アプリケーションでもこのバージョン情報を作ってみましょ

って、それがリソースにある VS_VERSION_INFO ってのでしょ?
そういうこと
じゃダブルクリック!
 リストが表示される。左に【キー】、右に【値】。左の列には英単語が並
ぶ。中央に【日本語(041104b0)】という仕切線。
う”、難しそう
あ、書いてあるのは、さっき見たメモ帳のプロパティなんかと同じなんだ
から
そういえばあっちは日本語で書いてあったよね
そうでしょ。ま、ひとつずつ見ていこうか。まず FILEVERSION はファイ
ルのバージョン。これがファイルのプロパティの最初に書いてあった数字
なんか 1, 0, 0, 1 って無茶苦茶細かくない?
これもさっきのバージョン情報ダイアログと同じで、自由に変えていいか
ら。メモ帳だって違うし
メモ帳ってもしかして日付……?
ま、テストバージョンの場合には、これだけ桁があると便利だけどね
アルファとかベータととかってことね
そゆこと。次の PRODUCTVERSION は【製品バージョン】
ってどう違うの?
ひとつの製品にいろんなファイルがある場合とかは、製品のと各ファイル
のとでバージョンが違う時があるから
あ、なるほど。でも Calc みたいにひとつだけなら一緒でいいんだよね
もちろん。 FILEFLAGSMASK 、 FILEFLAGS 、 FILEOS 、 FILETYPE 、 
FILESUBTYPE はそのままでいいから
ちなみにどういう意味?
このアプリはウィンドウズ用アプリですよーとか
そりゃまぁそんなふうなことは書いてあるけど……
んじゃそのあとの【日本語】のとこ
ってことはいろんな言語のバージョン情報も作れるんだ
そういうこと。ま、日本だけで公開するなら
日本語版だけでいいってことね。 Comments は?
【コメント】。ようするに〈このアプリはどういう意味〉とかってことを
書くわけ
まんまね……
ま、空白でいいかな。空白にすれば、ファイルのプロパティにも表示され
ないし
 CompanyName は【会社名】だよね。これは書かなきゃいけないっぽいけど
そう、これはちゃんと書かなきゃダメ。会社じゃなくてもブランド名とか、
なんか書いとかないと。 FileDescription は、ファイルのプロパティの2行
目、【説明】の部分
つまりこのファイルがなんなのか書けばいいんだよね
そういうこと。〈詳しいアプリケーション名〉ってとこかな。 FileVersion
はファイルのバージョンはそのまま
え、なんで?
これはさっきの FILEVERSION がそのまま表示されてるから
あ、いっしょなのね
 InternalName は、ファイル名から拡張子を取り除いたの
だから Calc って書いてあるのねー
 LegalCopyright は【著作権】、ファイルのプロパティの3行目に書かれ
てたの
つまり大事ってことね。これはバージョン情報ダイアログのと同じでいい
んでしょ?
うん、そうしとかないとまずいかも。 LegalCopyright は【商標】
【 TM ってのだよね。フリーウェアなら必要ないでしょ?】
ま、そういうことだね。市販のはたいがい書いてあるけど
 OriginalFilename は【正式ファイル名】だね。これはこのまま Calc.EXE
で良さそう
うん、いいでしょ。 PrivateBuild は【プライベート ビルド情報】。テス
トバージョンとか、社内専用バージョンとかってことを書くとこかな
 ProductName は【製品名】にあたるんだよね
そう。これは、ファイル単体のじゃなくて、アプリケーションパッケージ
全体の名前ね
だから Notepad.exe のは Microsoft(R) Windows(R) Operating System 
って書いてあるんだ。メモ帳はウィンドウズの一部だもんねぇ
 ProductVersion はこのままでOK
あ、これもさっきの PRODUCTVERSION とリンクしてるんだ
そういうこと。最後の SpecialBuild は PrivateBuild とほとんど同じ意
味だね
このふたつは空白のままでいいんでしょ?
いいでしょ。と、こんな感じかな。ちなみに詳しいことは、MSDNの中
の VERSIONINFO Resource ってページに書いてあるから
なんだ、公式ドキュメントがあるんだ……えいごー!?

/*
    Preview Next Story!
*/
ってゆーか、火美ちゃんは英語読めないの?
読めるよ。英語自然文翻訳システムの解凍に5G必要だけど
HD増設しなきゃね……
というわけで次回
< Version 3.17 ダイアログの閉じ方 >
につづく!!
あとなんか解凍しといたほうがいいのあるかな
日本語自然文翻訳システムも解凍しとけば?
……ちょっとそれどーゆー意味よ
 
del.icio.us 登録する
Yahoo!ブックマーク 詳細を表示 users
livedoorクリップ 詳細を表示 livedoorクリップ ブックマーク数
はてなブックマーク 詳細を表示 はてなブックマーク ブックマーク数
RSSに登録
del.icio.us 登録する
Yahoo!ブックマーク 詳細を表示 users
livedoorクリップ 詳細を表示 livedoorクリップ ブックマーク数
はてなブックマーク 詳細を表示 はてなブックマーク ブックマーク数
 
このページは、Visual C++ 6.0を用いた C++ 言語プログラミングの解説を行う#pragma twiceの一コンテンツです。
詳しい説明は#pragma twiceのトップページをご覧ください。