В сфере разработки программного обеспечения часто возникает необходимость получить информацию о версии, связанную с динамически подключаемыми библиотеками ( DLL) и исполняемые программы (EXE). Используя собственные API-интерфейсы Win32, доступные через C или C, разработчики могут легко получать версии продуктов и файлов этих исполняемых объектов.
Ключ к разблокированию информации о версии находится в API GetFileVersionInfo. Эта мощная функция заполняет буфер данными, относящимися к указанному файлу DLL или EXE. Давайте углубимся в тонкости его использования:
Следующий код пример иллюстрирует практическое применение API GetFileVersionInfo:
DWORD verHandle = 0;
UINT size = 0;
LPBYTE lpBuffer = NULL;
DWORD verSize = GetFileVersionInfoSize(szVersionFile, &verHandle);
if (verSize != NULL) {
LPSTR verData = new char[verSize];
if (GetFileVersionInfo(szVersionFile, verHandle, verSize, verData)) {
if (VerQueryValue(verData, "\\", (VOID FAR * FAR *)&lpBuffer, &size)) {
if (size) {
VS_FIXEDFILEINFO *verInfo = (VS_FIXEDFILEINFO *)lpBuffer;
if (verInfo->dwSignature == 0xfeef04bd) {
// Parse the file version into a four-part dotted string
TRACE("File Version: %d.%d.%d.%d\n",
(verInfo->dwFileVersionMS >> 16) & 0xffff,
(verInfo->dwFileVersionMS >> 0) & 0xffff,
(verInfo->dwFileVersionLS >> 16) & 0xffff,
(verInfo->dwFileVersionLS >> 0) & 0xffff
);
}
}
}
}
delete[] verData;
}
В заключение, API GetFileVersionInfo предоставляет комплексное решение для программного получения информации о версии из DLL и EXE-файлов. Используя эту функцию, разработчики могут автоматизировать задачи поиска версий, обеспечивая точность и эффективность своих усилий по разработке программного обеспечения.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3