Здравствуйте VLK, 22.04.2001 06:08:35 вы писали:
> >----------------------------------------------------------- >GetFileVersionInfo >VerQueryValue > >Работа со структурами переменной длины. Вообще эта информация предусмотрена для программ инсталляции. Однако, ничего не мешает использовать ее здесь...
Есть еще до безобразия простой вариант — задать версию через #define в каком-нибудь заголовке, а потом подставлять везде где можно, в том числе и в ресурсах.
resource.rc2
...
#include "Version.h"
VS_VERSION_INFO VERSIONINFO
FILEVERSION FILEVER
PRODUCTVERSION PRODUCTVER
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x21L
#else
FILEFLAGS 0x20L
#endif
FILEOS 0x40004L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "Build", STR_BUILD
VALUE "Comments", "\0"
VALUE "CompanyName", "My Company\0"
VALUE "FileDescription", "\0"
VALUE "FileVersion", STR_FILEVER
... <skipped>
Более того, используя макросы или addin'ы в VC, можно изменять версию в version.h автоматически при каждой сборке.
Единственная проблема — проходится объявлять циферки дважны — один раз как цифры, другой раз как строки. У меня не получилось заставить препроцессор конвертнуть цифру в строку...