Re[3]: Изменение данных о версии модуля.
От: Patalog Россия  
Дата: 22.11.02 08:55
Оценка: 13 (2)
Здравствуйте, Бодряк, Вы писали:

const int name_size = MAX_PATH;
TCHAR file_name[name_size] = { 0 };
lstrcpy(file_name, "my_cool_app.exe");

DWORD unused = 0;
DWORD version_size = GetFileVersionInfoSize(file_name, &unused);
_ASSERTE(version_size);

unsigned char* version_info = new unsigned char[version_size];
BOOL res = GetFileVersionInfo(file_name, 0, version_size, version_info);
_ASSERTE(res);

VS_FIXEDFILEINFO* fixed_info = NULL;
UINT block_len = 0;
res = VerQueryValue(version_info, "\\", reinterpret_cast<void**>(&fixed_info), &block_len);
_ASSERTE(res);

++fixed_info->dwFileVersionLS;

HANDLE resource = BeginUpdateResource(file_name, FALSE);
_ASSERTE(resource);

res = UpdateResource(resource, RT_VERSION, MAKEINTRESOURCE(VS_VERSION_INFO), MAKELANGID(LANG_ENGLISH, SUBLANG_DEFAULT), version_info, version_size);
_ASSERTE(resource);

res = EndUpdateResource(resource, FALSE);
_ASSERTE(resource);

delete [] version_info;
Почетный кавалер ордена Совка.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.