Versionsinformation unter Mac OSX auslesen

Antworten
jus
Beiträge: 47
Registriert: Fr 6. Mai 2011, 13:29

Versionsinformation unter Mac OSX auslesen

Beitrag von jus »

Hallo,

man kann ja unter Projekt->Projekteinstellungen, die Versionsinformationen einstellen. Doch ich habe nichts gefunden, wie kann man diese unter Mac wieder auslesen kann. Kann wer mir bitte einen Tipp geben?

Lg,
jus

Socke
Lazarusforum e. V.
Beiträge: 2778
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Versionsinformation unter Mac OSX auslesen

Beitrag von Socke »

MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

jus
Beiträge: 47
Registriert: Fr 6. Mai 2011, 13:29

Re: Versionsinformation unter Mac OSX auslesen

Beitrag von jus »

Hallo Socke,

vielen Dank für die schnelle Antwort. Sicher dass das unter Mac auch funktioniert? Es steht da was von Win32 API und wenn ich versuche unter uses fileinfo einzubinden, dann findet Lazarus es nicht.

Lg,
jus

Socke
Lazarusforum e. V.
Beiträge: 2778
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Versionsinformation unter Mac OSX auslesen

Beitrag von Socke »

jus hat geschrieben:Sicher dass das unter Mac auch funktioniert?

Nö, war nur die erste Antwort von google. Die zweite Suche liefert das hier: http://lists.lazarus.freepascal.org/pip ... 43461.html
Fazit: Nur weil der Reiter in den Projektoptionen vorhanden ist, heißt das nicht, dass die auch in der fertigen Binärdatei enthalten sind.
Da die neueren FPC-Versionen aber Windows-Ressourcen auch in ELFs einbinden können, könntest du diesen Weg versuchen.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

jus
Beiträge: 47
Registriert: Fr 6. Mai 2011, 13:29

Re: Versionsinformation unter Mac OSX auslesen

Beitrag von jus »

Hallo,

..."Und sie dreht sich doch!".... :D Es scheint, dass Lazarus doch die Versionsinformation unter Mac reinkompiliert, bei eingeschalteter Versioninformation natürlich. Eine Vermutung ist, dass in project1.lpr der Befehl {$R *.res} drin ist und der Compiler auch immer brav eine project1.res erzeugt. Ich bin auch nur draufgekommen, wie ich mir die project1.res unter Windows in Resource Hacker angeschaut habe. Wenn man aber unter "Projekt->Projekteinstellungen ...->Versionsinformation" das Häkchen bei "Versionsinfo in ausführbahre Datei einfügen" rausnimmt, dann sieht man im ResourceHacker, dass die project1.res keine Versionsinformation enthält. Dazwischen sollte man aber das Projekt abspeichern und neu kompilieren, sonst werden die Einstellungen nicht sofort übernommen. (daran bin ich schon mal drübergestolpert :oops: )
Ok, nun wie liest man es aus:

Code: Alles auswählen

procedure TForm1.Button1Click(Sender: TObject);
var
  S: TResourceStream;
  ergebnis:AnsiString;
begin
  S := TResourceStream.CreateFromId(HInstance, 1, RT_VERSION);
  SetLength(ergebnis, s.Size);
  s.ReadBuffer(ergebnis[1], s.Size);
  memo1.Lines.add(ergebnis);
  s.free;
end;


Es scheint so zu sein, dass die Versionsinformation als Unicodestring gespeichert ist, da der Rückgabestring in Unicode16bit Format ist.
Interessant wäre noch, ob die obige Vorgehensweise auch unter Linux funktioniert. :?: Vielleicht könnte ja jemand, der ein Linux hat das mal ausprobieren.

Lg,
jus

Maik81ftl
Beiträge: 619
Registriert: Mi 9. Mär 2011, 16:34
OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4)
CPU-Target: 64Bit
Wohnort: seit 01.06.2011 in Wahlstedt

Re: Versionsinformation unter Mac OSX auslesen

Beitrag von Maik81ftl »

wenn dies die Funktion dafür ist würde ich gerne dies mal testen.
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache :D und der Kreis Segeberg meine LIEBE :D

jus
Beiträge: 47
Registriert: Fr 6. Mai 2011, 13:29

Re: Versionsinformation unter Mac OSX auslesen

Beitrag von jus »

Hallo,
ich bin gerade drauf gekommen, dass ich wohl das Rad wieder neuerfunden habe. :( Anscheinend gab es dazu schon eine fertige Lösung. Ich habe es gerade ausprobiert und funktioniert auch unter Mac tadellos. Scheint eine allgemeine Lösung zu sein, die auch unter Linux funktioniert.

Die Beiträge dazu:
Versionsinfo unter Linux?
[Lazarus] Build Number

Lg,
jus

Antworten