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
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus