У меня есть файл RC с этими Определяет внутри:Как преобразовать конкатенированные определяет в строку в файле RC?
#define V_MAJOR 0
#define V_MINOR 0
#define V_PATCH 0
#define V_BUILD 2
#define DOT .
#define V_STRING V_MAJOR##DOT##V_MINOR##DOT##V_PATCH##DOT##V_BUILD
Как повернуть V_STRING в символьной строки?
Я попытался следующий код (который я нашел в Интернете и якобы работает)
#define STRINGIZE_(x) #x
#define STRINGIZE(x) STRINGIZE_(x)
, а затем я назвал STRINGIZE на V_STRING, но вместо того, чтобы превратить значения в строки, оказалось идентификаторы в строки , (АКА отображает «V_MAJORDOTV_MINORDOTV_PATCHDOTV_BUILD» на вкладке свойств в проводнике для версии продукта.)
Я в принципе хочу V_STRING вернуть «0.0.0.2», используя V_MAJOR, V_MINOR, V_PATCH и V_BUILD. Как мне это сделать?
Спасибо, хотя в настоящее время на вкладке свойств в проводнике, то «Версия файла» установлено значение 0.0.0.0, а «Версии» получает правильный номер. Вы знаете, почему это происходит? – BananasGoMoo
я понял это: '#define STRINGIZE_ (х) #x #define STRINGIZE (х) STRINGIZE_ (х) #define V_MAJOR 0 #define V_MINOR 0 #define V_PATCH 0 #define V_BUILD 2 #define DOT "." #define S_MAJOR STRINGIZE (V_MAJOR) #define S_MINOR STRINGIZE (V_MINOR) #define S_PATCH STRINGIZE (V_PATCH) #define S_BUILD STRINGIZE (V_BUILD) #define V_STRING S_MAJOR ДОТ S_MINOR ДОТ ДОТ S_PATCH S_BUILD' , потому что, по-видимому «Версия файла» взята из оператора FILEVERSION, для которого требуются целые числа, а «Версия продукта» взята из VALUE «ProductVersion» - строки. – BananasGoMoo