15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


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

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;