День добрый.
Проблема:
Есть проект на C++.
В нем набор модулей.
Каждый модуль имеет rc файлы.
В каждом rc есть стандартный блок Version в котором описывается версия сборки.
Сейчас реализовано вот так:
#include "ProjectVersion.h"
VS_VERSION_INFO VERSIONINFO
FILEVERSION VERSION_NUMBER
PRODUCTVERSION VERSION_NUMBER
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x4L
FILETYPE 0x2L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904B0"
BEGIN
VALUE "FileDescription", "MyDLLName DLL"
VALUE "FileVersion", VERSION_STRING "\0"
VALUE "InternalName", "MyDLLName"
VALUE "LegalCopyright", "Copyright (C) 2007"
VALUE "OriginalFilename", "MyDll.DLL"
VALUE "ProductName", "SumpLangRu Dynamic Link Library"
VALUE "ProductVersion", VERSION_STRING "\0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
END
В ProjectVersion.h объявлены VERSION_STRING и VERSION_NUMBER.
После успешной ночной сборки циферки в этих дефайнах меняются.
В общем все работает.
Пробле в следующем. При изменении rc студия убивает строку #include "ProjectVersion.h"
и вместо VERSION_NUMBER ставит 0.0.0.0 ,
а вместо VERSION_STRING "\0" ставит "0.0.0.0"
Подскажите как правильно прописать в студии номер версии сборки? Что бы студия не затирала версии нулями. Спасибо
13.08.10 17:11: Перенесено из 'C/C++. Прикладные вопросы'
Если есть желание — найдется 1000 возможностей.
Если нет желания — найдется 1000 причин.