《《《 Version Resource Generator for D' Version 0.90 (β)》》》 ■はじめに  本ソフトをダウンロードしていただき、ありがとうございます。  バージョンリソースとは、Windows95のエクスプローラにおけるファイルのプロパテ ィダイアログや、WindowsNTのファイルマネージャなどで見ることができる、バイナリ ファイルに書き込むバージョン情報のためのリソースです。  また、インストールプログラムは、既に同じファイルがインストールされているか どうかをチェックし、インストールされている場合はそのバージョンの比較をします が、その際、このバージョン情報が使用されます。  32ビットOSでは特に、バージョン情報を埋め込むのは必須事項となっています。 が、元となるリソースファイルを作成するための便利なツールがなかなかないので、 作成してみました。  このバージョンはβ版ということにしましたが、以下にある「最初に行うこと」が うまく行くかどうかということ以外は、ほぼ完成した内容となっています。  ただ、これ以外にも「こうなっていた方が使い易い」というご意見があれば、私の 好みと一致する内容なら、正式版では反映したいという思いもあります。  画面上の説明が全て英語なのは、私の好みもありますが、日本語環境以外でも動作 することを期待して、というのもあります。(動作確認はしていませんが...) この点については変更するつもりはありませんの、ご了承下さい。  また、ソースが付随していない点に関しては、オリジナルのカスタムコンポーネン トや、既存のVCLコンポーネントを改良したモノを多数使用しているためです。 ダウンロードに時間が掛かってしまい、申し訳ないのですが、この点についても変更 するつもりはありませんので、ご了承下さい。 ■不具合・ご意見・ご感想について  このβ版の不具合・ご意見・ご感想に関しては、FDELPHIの11番会議室かメールで お願いします。他の方の参考になるようなことは、なるべく会議室をご利用下さい。 SBORLANDの9番会議室も巡回していますが、内容が重複してほしくないので、できるだ けFDELPHIの方にお願いします。  なお、以下の点について、予めご了承下さい。 ・こちらで再現できない不具合に関しては、対応できない場合があります。 ・ご意見やご提案をいただけるとありがたいですが、私の好みに合わない機能は付加  しませんし、付加するとしても、いつまでにというようなお約束はできません。 ・会議室やメールでいただいたメッセージに、すぐには返答できない場合もあります  し、内容によっては、後からいただいたメッセージに先に返答する場合もあります。 ■著作権その他(必ずお読み下さい)  このアーカイブに含まれる全てのファイルは、作者であるm☆isao(三神 功) が著作権を保有しています。  また、本ソフトを使用した結果につきましては、作者は一切責任を負いません。 使用したことによって損害が起きても、作者はいかなる補償もしません。  不具合等に関しては、できるだけ良心的に対応するつもりですが、その義務は一切 負いません。  本ソフトはフリーソフトウェアなので、使用する上での条件はありません。 ただし、転載はできません。正式版でどうするかは未定ですが、本バージョンはβ版 なので、メールをいただいてもお断りしますので、ご了承下さい。  以上に同意てきない方は、本ソフトをアンインストールし、ダウンロードしたアー カイブを削除して下さい。 ■最初に行うこと  初めて起動すると、まずオプションダイアログが表示されます。 まずは次の設定だけを行って下さい。  ・FontNameに「MS ゴシック」を指定します。  ・Pathに、リソースコンパイラのパスを指定します。Findを使うと簡単です   Delphi2.0ユーザーは、bin\brcc32.exeを使用して下さい   brcc32以外を使用する場合は、32と16の内容を変更する必要があります  OKを押すと、メイン画面が表示されます。 Openで、Sample.rcを開いて下さい。  Save&Compileを押すと、リソースコンパイラが起動されます。  brcc32などはMSDOSアプリのため、MSDOSのコンソールウィンドウが表示されます。 実際にはリソースコンパイラを直接起動しているわけではなく、バッチファイルに よって間接的に起動しています。バッチファイル名は、VerGenEx.batです。  ここからの動作で、環境によって違いが出る可能性があります。 環境の違いというのは、MSDOSアプリを起動する際のデフォルトの設定の違いからくる ものです。 確実に動作させるには、VerGenEx.bat専用のPifファイルを作成することです。  Pifファイルの作成は、Windows95ならエクスプローラでVerGenEx.batのプロパティ を変更すれば自動的に作成されます。WindowsNTの場合はPifエディタで作成します。 通常に使用する場合に設定する項目は次の通りです。  ・起動時の大きさ              通常のウィンドウ  ・プログラム終了時にウィンドウを閉じる       オン  ・使い方(表示方法)            ウィンドウ表示  ・バックグラウンド時の設定:つねに実行を中断   オフ  起動時の大きさは、アプリから起動する場合には使用されないので、何を選択 しても同じです。他の項目の設定が無事に反映されたことを確認した後は、オプシ ョンダイアログの"Minimize Window"をオンにすれば最小化して起動できます。  ウィンドウの表示方法を「フルスクリーン」表示にすると、Windowsの画面に戻った 時に、画面の再描画が一部行われない現象を発見していますが、害はないようです。 とは言え、必ず「ウィンドウ表示」で使用するようにして下さい。  無事にコンパイルが済むと、メイン画面の"Compiler"ページに結果が表示され ます。 以下は、Borland社のリソースコンパイラbrcc32.exeを使用した場合の結果です。 ---------------------------------------------------------------------------- Borland Resource Compiler Version 5.00 Copyright (c) 1990, 1996 Borland International. All rights reserved. Lines: Current 0, Total 0 New File: sample.rc Lines: Current 1, Total 0 New File: c:\vergen4d\sample.rc Lines: Current 8, Total 7 Compiling VERSIONINFO: VS_VERSION_INFO Lines: Current 0, Total 38 New File: 96/10/15 0:00:00 : C:\VerGen4D\Sample.rc 96/10/15 0:00:12 : C:\VerGen4D\Sample.res ----------------------------------------------------------------------------  最後の2行のタイムスタンプを見るとわかるように、Sample.resが作成されて います。  どうしてもうまく行かない場合、オプションダイアログの"Minimize Window"と "Use Batch-File"をオフにし、Pifファイルで「プログラム終了時にウィンドウを閉じる」を オフにしてみて下さい。バッチファイルを使用せずに直接リソースコンパイラを起動 するようになります。ただし、コンパイラの出力結果を"Compiler"ページに取り込む ことはできず、また、コンパイルが終了したことをVerGen4Dが検知することもできま せん。これ以外の場合は、"Use Batch-File"はオンで使用して下さい。  うまく行った場合は、オプションダイアログの"Minimize Window"をオンにすること をお薦めします。 ■基本的な使用法 □ボタンの説明  新規リソースを作成するには、Newを押します。 各項目の内容がデフォルト値に初期化されます。デフォルト値の変更は、オプション ダイアログで一部可能です。その他の項目に関しては、「高度な使用法」を参照して 下さい。  なお、New、Open、Exitが押された場合、編集中のリソースが変更後に保存されてい るかどうかのチェックは行っていません。  既存のリソースファイルを開くには、Openを押します。 オープンダイアログの「読み取り専用ファイルとして開く」については「高度な使用法」 を参照して下さい。  新規リソースの場合、保存しないとSave&Compileはイネーブルになりません。 保存するにはSaveAsを押します。既存ファイルを開いた場合でも、名前を変更して 保存する場合はSaveAsを使用します。  コンパイルを開始するには、Save&Compileを押します。 名前からわかるように、コンパイルの際には必ず保存が行われます。これは、上に 書いたように、変更があったかどうかをチェックしていないためです。 手抜きではありますが、実際の使用に当たっては、問題になることはないと考え、 このようになっています。  コンパイルの際は、まずリソースファイルを保存したディレクトリをカレントに しています。コンパイル後の*.resファイルは、*.rcファイルと同じディレクトリに 作成されることになります。  32というボタンは、押されていれば32ビット用の、押されていなければ16 ビット用のリソースコンパイラを起動するという意味です。 32/16ビット用のコンパイラというのは、オプションダイアログの32や16 に指定されているものです。 □"FileImage"ページ  既存リソースファイルを開くか新規リソースを保存すると、"FileImage"ページに ファイルの内容が表示されます。  コンパイルした際にコンパイルエラーが発生すると、エラー箇所はファイルの行番 号などで表示されます。 Error sample.rc 21 38: Syntax error  例えばこの場合、21行目でエラー発生しているわけですが、どの項目のエラー なのかを知るには、"FileImage"ページで調べることになります。 ■各項目の簡単な説明  正式版ではなるべく細かい説明を書く予定ですが、β版ということもあり、ヘルプ を見ればわかるようなことは、簡単にしか書きません。 □"FixedInfo"ページ  Comments&Includesには、主にコメントを書きます。 コメントは必ず行頭に // を付けて下さい。 リソースコンパイラは、C風の /* */ を理解できますが、VerGen4Dはリソースファ イルの読み込みの際に、この形式のコメントを特に意識していません。 そのため、コメントの内容によっては、読み込みに失敗することがあります。  FILEVERSIONやPRODUCTVERSIONはそれぞれ、4つの数値をカンマで区切って指定し ます。4つ全てを指定する必要はなく、"1, 0"などでも構いません。  FILEOSは"VOS_DOS_WINDOWS32"のままでいいと思いますが、必要に応じて変更して 下さい。デフォルト値はオプションダイアログで変更できます。  FILETYPEは、"VFT_APP"か"VFT_DLL"が最もよく使われるでしょう。これらの場合は、 FILESUBTYPEは"VFT2_UNKNOWN"固定です。 □"StringInfo"ページ  LanguageIDは、日本語版アプリなら"411 Japanese"でいいでしょう。 CodePageは迷うところです。日本語版VC++のデフォルトは"1200 Unicode"ですが、 Delphi2.0に付属のResource Workshopは"1252 Windows,Multiligual"になっています。 16bitアプリでは"932 Windows,Japan"が一般的に使われています。 なお、この2つのデフォルト値はオプションダイアログで変更できます。  FileVersionやProductVersionは、"FixedInfo"ページと同じ内容にすべきですが、 こちらは文字列なので、「カンマで区切る」などの規則はありません。 これらを始め、他の項目もすべて文字列なので、どんな値を指定しても自由ですが、 市販の他のアプリなどを参考にして、あまり特異なモノにはしない方がいいでしょう。  項目名の最後にアスタリスク(*)が付いているモノは、OSによって必須項目と規定 されています。  PrivateBuildとSpecialBuildは、通常は使用しません。 使用する場合は、ヘルプなどのドキュメントで意味を十分に理解してからの方がいい でしょう。 ■高度な使用法 □デフォルト値を変更する  Newで新規リソースの作成をする時、各項目はデフォルト値に初期化されます。  FILEOS、LanguageID、CodePageは、オプションダイアログで、デフォルト値を変更 できます。  他の項目のデフォルト値を変更したい場合、例えばCopyRightやCompanyNameがいつ も同じ場合などには、Initial.rcというファイルを作成すれば可能になります。  Initial.rcは、VerGen4D.exeと同じディレクトリに作成する必要があります。 また、オプションダイアログの"Use Initial.rc"をオンにして下さい。  Initial.rcの作成法は、通常のリソースファイルの作成の場合と同じですが、必要 な項目を指定するだけで構いません。  当然のことながら、Initial.rcを使用する場合は、オプションダイアログにおける FILEOS、LanguageID、CodePageの設定は使用されません。  Initial.rcは一つしか作ることができないため、ProductNameなどの、アプリごとに 違う値を設定しておくのには無理があります。  その場合は、既存のリソースファイルを参照オープンするのが便利です。非常に単 純なテンプレートという風に考えることもできます。  それには、Openする時のオープンダイアログで「読み取り専用ファイルとして開く」を オンします。(正式版ではこの名称を変えるつもりです) こうして開いた場合、そのファイルの内容が読み込まれますが、依然として新規の状 態になります。つまり、SaveAsで保存しない限り、コンパイルできません。 □項目に空文字列を設定する方法  "StringInfo"ページの文字列項目は、何も指定しない場合、リソースファイルでコ メントになるようにしています。 行末の空白文字は除去するようになっているので、空白文字だけからなる文字列でも 同様です。 // VALUE "Comments", "\0"  こうしないと、内容がのあるなしに関らず、すべての項目がバージョン情報ダイア ログなどで表示されてしまうことになるからです。  もし、値が空であってもその項目を表示したいのであれば、\0 を指定して下さい。 そうすれば、上の // が取り除かれます。 □定数識別子を使う方法  ほとんど使用することはないでしょうが、リソースファイルでは定数識別子を使え ます。Delphiで言えば、constで宣言した識別子のようなものです。  定数を宣言するには、#defineを使います。 "FixedInfo"ページの"Comments & Includes"に、例えば次のように書きます。 #define ProdName "Sample application" "StringInfo"ページのProductNameには、次のように \# を頭に付けて指定します。 ProductName \#ProdName こうすると、リソースファイルに書き込む際に、ダブルクオートで囲んだりしなくな るので、定数識別子として使用できます。 VALUE "ProductName", ProdName  定数識別子を使う場合、大抵はそれを別ファイルに書き、そのファイルをインクル ードします。ファイルのインクルードは、"Comments & Includes"に、 #include ファイル名 で可能です。  Sample2.rcとSample2.hで、定数識別子を使用していますので、参考にして下さい。 ■Delphi2.0のツールメニューから起動する方法  VerGen4Dを、Delphi2.0のツールメニューに登録すると便利です。 現在のところ、次のようなマクロで呼び出される場合に対応しています。  タイトル        Version Resource Generator  プログラム       c:\VerGen4D\VerGen4D.exe  実行時のディレクトリ    実行時引数       $EDNAME $PROMPT(Version)              $EXENAME $PROMPT(Version)  これによって、プロジェクトのあるディレクトリのVersion.rcを編集することにな ります。あれば自動的に開き、なければこれが新規リソースの保存名候補となります。 実行時引数で使用できるマクロはそれほど強力なわけではないので、上のようにリソ ースファイル名を"Version.rc"のように固定と決めてしまうと楽です。 (ProjectName.rcは、VCLが使用するので使えませんし) $PROMPTを使えばダイアログが表示されて変更することも可能です。  ただし、問題があります。 既存のプロジェクトを開いた場合、一度コンパイルを行わないと、$EXENAMEは空にな ってしまうようです。$EDNAMEを使えばこの問題は回避できますが、エディタでカレン トページになっているソースが別のディレクトリにある場合に、プロジェクトのディ レクトリとは異なってしまいます。  参考までに、内部で行っている処理のイメージを書きます。 if ParamStr(1) <> '' then begin PathName := ExtractFilePath(ParamStr(1)); if ParamStr(2) = '' then FileName := ExtractFileName(ParamStr(1)) else FileName := ExtractFileName(ParamStr(2)); FileName := ChangeFileExt(FileName, '.rc'); end; ■プロジェクトにバージョンリソースを追加する方法と注意事項  プロジェクトで使用するユニットのどれかに、 {$R Version.res} の一行を加えます。(リソースファイル名を"Version.rc"とした場合) メインフォームのユニットの、 implementation {$R *.DFM} の後に書くのが一般的です。  注意しなければならないのは、VerGen4Dで変更を行ってリソースをコンパイルした 後、プロジェクトを再リンクさせなければならないということです。 (プロジェクト内のいずれかのソースの行末以降でスペースを打つなりすれば、ソー スが変更されたことになり、再コンパイル&再リンクが行われます) ■現在わかっている不具合 ・コンパイルが成功しているにも関らず、"Compiler"ページの最後が、 96/10/15 00:00:00 : C:\VerGen4D\Sample.rc <<< Not Found >>> : C:\VerGen4D\Sample.res のように、*.resが見つからないと表示されることがあります。 これは、バッチファイルによってコンパイラの出力をテキストファイルにリダイレク トし、そのファイルが更新された時点でコンパイルが終了したと見なしているためで す。希に、*.resファイルの更新が、このテキストファイルが更新されるのよりも後に なってしまうことがあるために、このような現象が起きるものと思われます。  brcc32などのリソースコンパイラは、Windowsのコンソールアプリケーションとして も起動できるようにも思え、パイプなどの方法で直接出力を取り込めるかもしれない という気がしています。可能ならば、正式版ではこの方法を採用するつもりで、そう なればこの不具合を取り除くことができます。 ・"Minimized Window"していると、関係ないMSDOSコンソールウィンドウがアクティブ になることがあるようですが、回避法はわかっていません。コンパイルが終了して、 コンパイラのウィンドウが閉じると、自動的にVerGen4Dが再度アクティブになるので、 実用上は問題はないと思います。 ■アンインストールについて  本ソフトをアンインストールするには、インストールしたディレクトリの中身を 全て消去して下さい。加えて、レジストリエディタで HKEY_CURRENT_USER/Software/mXisao のキーを削除して下さい。 ■最後に  実は本ソフト、3ヶ月前にほぼ現在の形にまで出来上がっていたのですが、ドキュ メントを書くのが面倒で、そのまま放置していました。そのため、このドキュメント も、急いで書いたためにダラダラとした内容になってしまい、申し訳ありません。 正式版ではヘルプファイルにしたいとは思っていますが、どうなることやら...。  本ソフト、私自身も結構気に入っているツールなので、皆さんにもかわいがってい ただければ、とても嬉しいです。