AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE Wie mittels bedingter Compilierung andere Versionsinformationen in Exe-Datei linken?

Wie mittels bedingter Compilierung andere Versionsinformationen in Exe-Datei linken?

Ein Thema von devidespe · begonnen am 21. Nov 2014 · letzter Beitrag vom 31. Dez 2014
Antwort Antwort
devidespe

Registriert seit: 7. Sep 2006
Ort: Berlin
434 Beiträge
 
Delphi 10.4 Sydney
 
#1

Wie mittels bedingter Compilierung andere Versionsinformationen in Exe-Datei linken?

  Alt 21. Nov 2014, 18:30
Hallo,

in den Projektoptionen meiner XE-Delphi-Applikation gibt es ja die Kategorie "Versionsinformationen", die z.B. den Firmennamen, Produktnamen, die Version und das Copyright enthält. Diese Daten werden mit der Compilierung in die Exe-Datei gelinkt.

Nun habe ich das Problem, mittels eines Compilerschalters für bedingte Compilierung, diese Daten modifiziert in die Exe-Datei linken zu müssen. Das betrifft z.B. einen anderen Firmen- und Produktnamen.

Kann ich direkt aus dem Quellcode auf diese Felder zugreifen, oder muss ich über Ressourcen-Dateien gehen, wo ich dann bei einem bestimmten Compilerflag der bedingten Compilierung eine andere Ressourcendatei in der DPR-Datei einbinde?

Danke für Eure Antworten.
Devid
57 65 72 20 6C 65 73 65 6E 20 6B 61 6E 6E 2C 20 69 73 74 20 6B 6C 61 72 20 69 6D 20 56 6F 72 74 65 69 6C 21
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.108 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Wie mittels bedingter Compilierung andere Versionsinformationen in Exe-Datei link

  Alt 21. Nov 2014, 18:37
Könntest du nicht einfach eine (bzw. zwei) weitere Build-Konfigurationen erstellen?

Benenne Release und Release_Firma1 (analog Debug) um und lege eine (zwei) neue an: Release_Firma2 und du kannst in der IDE weiterhin alles einstellen wie man es gewohnt ist.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Wie mittels bedingter Compilierung andere Versionsinformationen in Exe-Datei link

  Alt 21. Nov 2014, 18:42
Könntest du nicht einfach eine (bzw. zwei) weitere Build-Konfigurationen erstellen?

Benenne Release und Release_Firma1 (analog Debug) um und lege eine (zwei) neue an: Release_Firma2 und du kannst in der IDE weiterhin alles einstellen wie man es gewohnt ist.
Vererben geht auch, indem man diese Einträge als Unterpunkte von release/debug anlegt. Hängt aber stark davon ab, was man damit erreichen will.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.108 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Wie mittels bedingter Compilierung andere Versionsinformationen in Exe-Datei link

  Alt 21. Nov 2014, 18:44
Wow, tatsächlich. Wieder was gelernt
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.097 Beiträge
 
Delphi 12 Athens
 
#5

AW: Wie mittels bedingter Compilierung andere Versionsinformationen in Exe-Datei link

  Alt 21. Nov 2014, 19:02
Und nur um noch die andere Variante zu nennen:

Man könnte das {$R *.res} in der DPR auskommentieren / mit einem Compilerschalter entfernen und stattdessen eine alternative Resource einbinden,
aber das ist etwas blöde, denn diese Resource enthält nicht nur die Versions-Resource, sondern auch das Manifest und das Application-Icon.
Die Versions-Resource in den Projektoptionen deaktivieren und und nun seine eigene Resource einbinden geht also besser.

Hier kann man nun beliebig die verschiedensten Resourcen einbinden.

PS: In den Projektoptionen kann man hier ebenfalls eigene Compilerschalter definieren (DEFINEs's für IFDEF).


Da {$R} /{$RESOURCE} sogar direkt vom Compiler aus einer RC die RES generieren kann, indem das jeweils durch den Resourcencompiler gejagt wird, kann man sogar aus einer extern befüllbaren Textdatei (*.RC) die Versions-Resource erstellen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
devidespe

Registriert seit: 7. Sep 2006
Ort: Berlin
434 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Wie mittels bedingter Compilierung andere Versionsinformationen in Exe-Datei link

  Alt 30. Dez 2014, 12:09
@himitsu: Das wäre eine aus meiner Sicht effektive Methode für das Einbinden von Ressourcen und wäre für meine Situation vielleicht noch besser, da basierend auf einem bedingten Compilerschalter unterschiedliche Versionsinformationen, Manifeste und Icons integriert werden müssen.

Wenn ich die Versionsinformationen in den Projektoptionen also deaktivierte, könnte und muss ich alles in einer Res-Datei bereitstellen.

Nun stellt sich die Frage, wie ich das alles in einer Res-Datei integrieren kann? Spontan hätte ich eine RC-Datei erstellt, welche die Ressourcen enthält und mit brc32.exe bzw. brcc32.exe (was auch immer der Unterschied beider Programme sein mag) zur Res-Datei compiliert wird. Das habe ich fürs Manifest schon erfolgreich hinter mir.

Aber wie trage ich das Icon und die Versions-Datei dort ein und vor allem, in welchem Format müssen die Versionsinformationen vorliegen? Gibt es da eine Vorlage? Danke für die Hilfe.
Devid
57 65 72 20 6C 65 73 65 6E 20 6B 61 6E 6E 2C 20 69 73 74 20 6B 6C 61 72 20 69 6D 20 56 6F 72 74 65 69 6C 21
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.097 Beiträge
 
Delphi 12 Athens
 
#7

AW: Wie mittels bedingter Compilierung andere Versionsinformationen in Exe-Datei link

  Alt 30. Dez 2014, 12:19
eine Variante für Icon+VersionsInfo siehe Hier im Forum suchenManifest-Creator
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
mm1256

Registriert seit: 10. Feb 2014
Ort: Wackersdorf, Bayern
640 Beiträge
 
Delphi 10.1 Berlin Professional
 
#8

AW: Wie mittels bedingter Compilierung andere Versionsinformationen in Exe-Datei link

  Alt 30. Dez 2014, 13:09
Hallo,

sind für dieses Vorhaben denn nicht die ".opset"-Dateien gedacht?
Gruss Otto
Wenn du mit Gott reden willst, dann bete.
Wenn du ihn treffen willst, schreib bei Tempo 220 eine SMS
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.169 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: Wie mittels bedingter Compilierung andere Versionsinformationen in Exe-Datei link

  Alt 30. Dez 2014, 15:15
Opset? Ich denke das kann man mitterweile auch direkt im dproj-File über eine neue "Ableitung" definieren um dann dort einfach die Versionsinfos passsend zu setzen.
Und Compilerdefines sind dort auch easy zu setzen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#10

AW: Wie mittels bedingter Compilierung andere Versionsinformationen in Exe-Datei link

  Alt 31. Dez 2014, 00:56
Hallo,

sind für dieses Vorhaben denn nicht die ".opset"-Dateien gedacht?
Mit einer Optionstruppe ("*.optset"-Datei) kann man allerdings nicht die VersionsInfo setzen.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:07 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz