/* * getverres --- バージョン情報リソースを読んで表示 * by Yui N., 2003/04/13 *public domain* * * exe ファイルに埋め込まれているバージョン情報リソースから,バージョン番号を * 取得して標準出力に表示する。 * このプログラムの使い道は,make で zip ファイルの自動生成をさせるときに, * zip: $(FILES) * zip Hoge_`getverres hoge.exe`.zip $(FILES) * のようにして,書庫名にバージョン番号を埋め込むようなときに使う。 * * to compile by Cygwin: * gcc -s -mno-cygwin -o getverres.exe getverres.c -lversion * by BCC: * bcc32 getverres.c */ #include #include int main(int argc, char *argv[]) { LPSTR fileName; DWORD infoSize; BYTE *buffer; LPSTR value; UINT valueLength; if(argc != 2) { puts("usage: getverres filename.exe"); return EXIT_FAILURE; } /* 手抜き */ fileName = argv[1]; infoSize = GetFileVersionInfoSize(fileName, &infoSize); if(infoSize > 0) { buffer = malloc(infoSize); { GetFileVersionInfo(fileName, 0, infoSize, buffer); /* * warning: passing arg 3 of `VerQueryValueA' from incompatible pointer type * 無視(ぉ */ if(VerQueryValue(buffer, "StringFileInfo\\041103A4\\FileVersion", &value, &valueLength)) puts(value); } free(buffer); } return EXIT_SUCCESS; }