Здравствуйте, Бодряк, Вы писали:
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;