C++ で作成されたすべての dll にはバージョン番号が必要ですか? マシンに dll がありますが、右クリックしてもバージョン番号が表示されません。
PS : Win 7 がインストールされています。
C++ で作成されたすべての dll にはバージョン番号が必要ですか? マシンに dll がありますが、右クリックしてもバージョン番号が表示されません。
PS : Win 7 がインストールされています。
DLL のロード中にバージョン番号が使用されないことを理解することが重要です。したがって、DLL または実行可能プログラム (.EXE、.OCX、.SYS、.FON など) が持つ必要がある情報は必要ありません。
バージョンの本当の目的は、インストール プログラムがコンピュータに存在する DLL とインストールされている DLL を比較できるようにすることです。この場合の最も重要なバージョンは、FILEVERSION
一部または VERSIONINFO リソースです。MSDNの情報にアクセスするための API について詳しく読むことができます。
バージョン リソースは、サポートにも非常に実用的です。他のコンピューターまたは他のクライアントに再配布するDLL の変更を適切にプロトコル化すると、バージョン リソースがトラブルシューティングに役立ちます。DLL のバージョンを調べることで、発生した問題がすでによく知られており、DLL の最新バージョンで修正されているかどうかを確認できます。
DLL にバージョン情報を含めることは必須ではありません。ただし、複数のバージョンをリリースする場合は、サポート/メンテナンスのためにバージョン情報を追加することをお勧めします。
バージョン情報を win32 バイナリに追加する方法は次のとおりです。
また、既存の exe/dll にバージョン情報を埋め込むこともできます。
EDIT:目的のためにいくつかの情報を追加しました(Olegのリンクから):
バージョン情報関数を使用して、ファイルをインストールする場所を特定し、現在インストールされているファイルとの競合を特定できます。これらの機能により、次の問題を回避できます。
- 新しいバージョンの上に古いバージョンのコンポーネントをインストールする
- 混合言語システムで通知なしに言語を変更する
- ライブラリの複数のコピーを異なるディレクトリにインストールする
- 複数のユーザーが共有するネットワーク ディレクトリにファイルをコピーする
バージョン情報関数を使用すると、アプリケーションはバージョン リソースにファイル情報を照会し、その情報を明確な形式で表示できます。この情報には、ファイルの目的、作成者、バージョン番号などが含まれます。DLL、実行可能ファイル、.fon フォント ファイルなど、Windows リソースを持つことができる任意のファイルにバージョン情報を追加できます。情報を追加するには、VERSIONINFO リソースを作成し、リソース コンパイラを使用してリソースをコンパイルします。