C++ получить версию из.rc в код
Возможный дубликат:
Как читать из ресурса версии в Visual C++
В моем проекте C++ я добавил файл.rc, где я могу хранить версию файла, описание исполняемого файла, авторские права и т.д..
и все в порядке, я компилирую, я иду в проводник -> свойство файла, и я вижу все поля в форме.
Мой вопрос: если мне нужно прочитать из проекта собственную версию файла (например, для отображения в форме), как я могу это сделать?
Спасибо
2 ответа
Решение
Windows предоставляет набор вызовов API для получения информации о версии из исполняемых файлов. Следующий фрагмент кода должен помочь вам начать работу.
bool GetVersionInfo(
LPCTSTR filename,
int &major,
int &minor,
int &build,
int &revision)
{
DWORD verBufferSize;
char verBuffer[2048];
// Get the size of the version info block in the file
verBufferSize = GetFileVersionInfoSize(filename, NULL);
if(verBufferSize > 0 && verBufferSize <= sizeof(verBuffer))
{
// get the version block from the file
if(TRUE == GetFileVersionInfo(filename, NULL, verBufferSize, verBuffer))
{
UINT length;
VS_FIXEDFILEINFO *verInfo = NULL;
// Query the version information for neutral language
if(TRUE == VerQueryValue(
verBuffer,
_T("\\"),
reinterpret_cast<LPVOID*>(&verInfo),
&length))
{
// Pull the version values.
major = HIWORD(verInfo->dwProductVersionMS);
minor = LOWORD(verInfo->dwProductVersionMS);
build = HIWORD(verInfo->dwProductVersionLS);
revision = LOWORD(verInfo->dwProductVersionLS);
return true;
}
}
}
return false;
}
Используйте эти функции в исполняемом файле:
http://msdn.microsoft.com/en-us/library/ms646981%28v=VS.85%29.aspx