Am 06.11.2013 15:39, schrieb Antonio Fortuny:

Le 06/11/2013 14:41, Anton Kavalenka a écrit :
The unit versionresource is part of package fcl-res
I already use it for Linux with a Linux executable file

Unit allow x-platform version resource extraction and parsing.
rsrc:=TVersionResource.Create;
Stream := TResourceStream.CreateFromID(*hMod*, 1, PChar(RT_VERSION));
What's *hMod *stands for ? Looks like a pointer of so (PtrUint)
rsrc.SetCustomRawDataStream(Stream);
 with res do
      case it of
      vsFileVersion:
Result:=format('%d.%d.%d.%d',[FileVersion[0],FileVersion[1],FileVersion[2],FileVersion[3]]);
      vsProductVersion:
Result:=format('%d.%d.%d.%d',[ProductVersion[0],ProductVersion[1],ProductVersion[2],ProductVersion[3]]);
      end;

Hmm... nice... we already seem to have cross platform support :)

You could try something like this (untested, just made up from the code I see in fcl-res!):

=== code begin ===

uses
  resource, winpeimagereader, elfreader, versionresource;

var
  res: TResources;
  abstrres: TAbstractResource;
begin
  res := TResources.Create;
  try
    res.LoadFromFile('whatever.exe'); // or 'whatever' for ELF files
    abstrres := res.Find(RT_VERSION, 1);
    if abstrres is TVersionResource then
      ...
  finally
    res.Free;
  end;
end.

=== code end ===

Regards,
Sven
--
_______________________________________________
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to