はじめましてイチゴです。
WindowsXp VC++6.0を使用しています。
ビルド後のEXEファイルに対してバージョン情報(PrivateBuild)の内容の書き換えを
行いたいと思っています。
GetFileVersionInfoSize();
GetFileVersionInfo();
VerQueryValue();
BeginUpdateResource() ;
UpdateResource() ;
EndUpdateResource() ;
現在は、上記の順番により実現しようとしています。
VerQueryValue()でPrivateBuildの文字列を変更して
BeginUpdateResource()、UpdateResource()、EndUpdateResource()
で書き換えを行っています。
Exeファイルの更新日時をみると実行した時間に変わっているのでリソースの更新自体は
行われているようです。
しかし、PrivateBuildの文字列は変わりません。
そもそもバージョン情報は後から変更することは出来ないのでしょうか?
以上です。ご教授よろしくお願いします。
追記です。
UpdateResourceの引数は以下のようにしています。
UpdateResource( hUpdate, RT_VERSION, MAKEINTRESOURCE(VS_VERSION_INFO), 1041,
pVersionInfo, dwInfoSize ) ;
hUpdate : BeginUpdateResourceの戻り値
pVersionInfo : GetFileVersionInfoで取得したバッファのポインタ
dwInfoSize : GetFileVersionInfoで指定したバッファのサイズ
以上です。
イチゴです。
String ;
StringTable ;
StringFileInfo ;
VS_VERSIONINFO ;
上記の構造体を作成して展開したところバージョン情報を変更することができました。