Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Как получить версию моей DLL

Delphi , Файловая система , DLL и PlugIns

Как получить версию моей DLL

Приходит мужик в поликлинику - жаловаться на мужские проблемы, а там вместо врача - компьютер. Ну, он изложил суть проблем оператору, тот говорит:
- Вставьте член в отверстие сбоку. Мужик вставил. Комп погудел-погудел да и выдал: "Your Version Expired".


procedure GetFileVersion(FileName: string; var Major1, Major2,
  Minor1, Minor2: Integer);
var
  Info: Pointer;
  InfoSize: DWORD;
  FileInfo: PVSFixedFileInfo;
  FileInfoSize: DWORD;
  Tmp: DWORD;
begin
  InfoSize := GetFileVersionInfoSize(PChar(FileName), Tmp);

  if InfoSize = 0 then
    //Файл не содержит информации о версии
  else
  begin
    GetMem(Info, InfoSize);
    try
      GetFileVersionInfo(PChar(FileName), 0, InfoSize, Info);
      VerQueryValue(Info, '\', Pointer(FileInfo), FileInfoSize);
      Major1 := FileInfo.dwFileVersionMS shr 16;
      Major2 := FileInfo.dwFileVersionMS and $FFFF;
      Minor1 := FileInfo.dwFileVersionLS shr 16;
      Minor2 := FileInfo.dwFileVersionLS and $FFFF;
    finally
      FreeMem(Info, FileInfoSize);
    end;
  end;
end;

Программисту, который интересуется версией DLL-файла!

Вот перевод текста на русский язык:

Высококлассный шутник по запросу версии DLL! Ответ на ваш вопрос: код, который вы предоставили, - это процедура в Delphi (или Object Pascal), которая извлекает информацию о версии для указанного файла DLL. Вот разбивка шагов, которые она выполняет:

  1. Она сначала вызывает GetFileVersionInfoSize, чтобы определить размер информации о версии для указанного файла (FileName). Эта функция возвращает 0, если файл не содержит информации о версии.
  2. Если файл имеет информацию о версии, она выделяет память с помощью GetMem для хранения этой информации.
  3. Затем процедура вызывает GetFileVersionInfo, чтобы извлечь информацию о версии из файла. Эта функция принимает четыре параметра: имя файла, значение флага (0 в этом случае), размер буфера и адрес буфера.
  4. После извлечения информации о версии она использует VerQueryValue, чтобы разобрать информацию о версии в структуре PVSFixedFileInfo. Эта структура содержит номера версий, даты файлов и флаги.
  5. Затем процедура извлекает номера версий из этой структуры с помощью битовых операций (shr и and) и присваивает их параметрам вывода (Major1, Major2, Minor1 и Minor2).
  6. Наконец, она освобождает выделенную память с помощью FreeMem.

Чтобы получить версию вашего файла DLL, вы бы вызвали эту процедуру с именем вашего файла DLL в виде строки аргумента, например:

var
  Major1, Major2: Integer;
  Minor1, Minor2: Integer;

GetFileVersion('your_dll_file.dll', Major1, Major2, Minor1, Minor2);

Это вернет номера версий вашего файла DLL в переменных Major1, Major2, Minor1 и Minor2.

В статье описывается способ получения версии DLL-библиотеки с помощью процедуры GetFileVersion, которая позволяет извлечь информацию о версии файла и получить номера ее основных, второстепенных частей.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: DLL и PlugIns ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 12:19:28/0.0054659843444824/1