私のプロジェクトには、バージョン番号の定義を含むインクルード ファイル「buildversion.h」があります。より管理しやすくするために、プリプロセッサの「魔法」をいくつか行いました
問題は、Visual Studio のリソース ファイル エディタが通常のコンパイラのように動作しないため、「間違った」エントリが取得されることです。
私のヘッダーファイル:
#define MAJOR_VER_NUM 2
#define MINOR_VER_NUM 3
#define REV_NUM 9999
#define STR(x) #x // helper defines
#define XSTR(x) STR(x) // helper defines
#define XXX_FILE_VERSION MAJOR_VER_NUM,MINOR_VER_NUM,REV_NUM,0
#define XXX_PRODUCT_VERSION MAJOR_VER_NUM,MINOR_VER_NUM,REV_NUM,0
#define XX_FILE_VERSION_STRING XSTR(MAJOR_VER_NUM)", "XSTR(MINOR_VER_NUM)", "XSTR(REV_NUM)", 0"
#define ICOS_PRODUCT_VERSION_STRING XSTR(MAJOR_VER_NUM)", "XSTR(MINOR_VER_NUM)", "XSTR(REV_NUM)", 0"
int const MajorVersionNumber = MAJOR_VER_NUM;
int const MinorVersionNumber = MINOR_VER_NUM;
int const RevisionNumber = REV_NUM;
「main.rc」ファイルに上記のヘッダーを含め、バージョンブロックに書き込みます
VALUE "FileVersion", XXX_FILE_VERSION_STRING
このエントリの結果は次のとおりです。
2"、"3"、"9999"、0
上記のヘッダー ファイルを通常の C++ コードで使用すると、置換は正常に機能します。
2、3、9999、0
予想通り。
リソースファイルでこれを機能させる方法はありますか?