| プロパティ > バージョン情報タブ |
|---|
![]() |
| 拡大画像(100%) |
プログラム ファイル(*.exeや*.dll)を右クリックして“プロパティ”を表示させると,
“バージョン情報”タブがついている場合がある.
右の図はWindowsの標準シェルであるエクスプローラ(explorer.exe)のプロパティのバージョン情報を表示した例である.
[注:右図には“ウイルスプロパティ”というタブも表示されているが,
これはexplorer.exe自身のもっている情報ではなく“ウイルスバスター”というウイルス対策ソフトが付加しているものなので,
ウイルスバスターがインストールされていないパソコンでは表示されない.
必ず表示されるタブは“全般”“互換性”“セキュリティ”“概要”の4つだけ.]
このバージョン情報タブは必須ではないため,なくてもプログラムとしては問題はない(そして実際ないものも少なくない)が, 自作のプログラムを配布するような場合には ぜひつけておきたいものだ. バージョン情報タブがついていると…
a.exeというファイルがあったとして,
実行してみて正体を調べるというような勇気のある行動をとれるユーザでなくても
何のプログラムだったか(あるいはプログラムのバージョンなどの諸情報)を調べることができるようになる.
と,ちょっとオトクな感じになる. しかも,このバージョン情報タブをくっつけるのは思いのほかカンタンだったりする. というわけで,この文書ではプロパティのバージョン情報タブを付加する方法について説明する.
*.rc)を作ってコンパイル・リンクするだけ実はリソースファイルを作成して,それをプログラムと一緒にリンクしてしまうだけでよい.
たとえば,hello.cというソースから作られるhello.exeにバージョン情報タブをくっつける場合,
次のようなファイル(リソース スクリプトと呼ぶ)をつくる.
hello.rc |
|---|
#include <winver.h>
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,2,3,4
PRODUCTVERSION 5,6,7,8
FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
FILEFLAGS 0x00000000L
FILEOS VOS__WINDOWS32
FILETYPE VFT_APP
FILESUBTYPE VFT2_UNKNOWN
BEGIN
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x0409, 1252
END
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904E4"
BEGIN
VALUE "CompanyName", "<CompanyName>"
VALUE "FileDescription", "hello, world"
VALUE "FileVersion", "<FileVersion>\0"
VALUE "InternalName", "<InternalName>\0"
VALUE "LegalCopyright", "Copyright (C) 2006 Takashi Hatai.\0"
VALUE "OriginalFilename", "hello.exe\0"
VALUE "ProductName", "hello\0"
VALUE "ProductVersion", "<ProductVersion>\0"
END
END
END
|
リソース スクリプトhello.rcを用意したら,リソース コンパイラrc.exeでコンパイルして
リソース ファイルhello.resをつくり,
これをプログラムとリンクすれば作業終了である.
> rc hello.rc ……… hello.resができる > cl hello.c hello.res ……… hello.resもわたす
できあがったhello.exeを右クリックしてプロパティを開くと
バージョン番号というタブができているはずだ(下図).
上記のリソース スクリプトの書き方については,MSDNなどの資料を参照してほしいが,
そう固くならなくても,どこをどう変えれば どこにどう反映されるかは推測でわかるだろう.
実際に書き換えてみてコンパイル&リンクして期待した結果が得られていればOKとしよう.
どうしても詳しく知りたい人は参考資料の節を参照.
hello.exeのプロパティ > バージョン情報タブ |
|---|
![]() |
| 拡大図(100%) |
| ファイル名 | 説明 |
|---|---|
hello.c |
プログラム ソースコード |
hello.rc |
リソース スクリプト |
| Makefile | メイクファイル |
| verinfo.zip | 上記3つ全部入り圧縮パック |
hello, worldにバージョン情報タブを付加している.
| ファイル | 用語 |
|---|---|
*.rc | リソース スクリプト |
*.res | リソース ファイル |
rc.exe | リソース コンパイラ |