バージョン情報タブの作り方

プロパティ > バージョン情報タブ
拡大画像(100%)

プログラム ファイル(*.exe*.dll)を右クリックして“プロパティ”を表示させると, “バージョン情報”タブがついている場合がある. 右の図はWindowsの標準シェルであるエクスプローラ(explorer.exe)のプロパティのバージョン情報を表示した例である. [注:右図には“ウイルスプロパティ”というタブも表示されているが, これはexplorer.exe自身のもっている情報ではなく“ウイルスバスター”というウイルス対策ソフトが付加しているものなので, ウイルスバスターがインストールされていないパソコンでは表示されない. 必ず表示されるタブは“全般”“互換性”“セキュリティ”“概要”の4つだけ.]

このバージョン情報タブは必須ではないため,なくてもプログラムとしては問題はない(そして実際ないものも少なくない)が, 自作のプログラムを配布するような場合には ぜひつけておきたいものだ. バージョン情報タブがついていると…

と,ちょっとオトクな感じになる. しかも,このバージョン情報タブをくっつけるのは思いのほかカンタンだったりする. というわけで,この文書ではプロパティのバージョン情報タブを付加する方法について説明する.

リソース スクリプト(*.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つ全部入り圧縮パック

参考資料

備考

ファイル用語
*.rcリソース スクリプト
*.resリソース ファイル
rc.exeリソース コンパイラ

はたいたかし
2006-08-26
トップ > 開発ツール > バージョン情報タブ