AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi In IFDEF abbrüfen ob für Exe oder DLL kompiliert
Thema durchsuchen
Ansicht
Themen-Optionen

In IFDEF abbrüfen ob für Exe oder DLL kompiliert

Ein Thema von Bernhard Geyer · begonnen am 14. Dez 2007 · letzter Beitrag vom 14. Dez 2007
Antwort Antwort
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.195 Beiträge
 
Delphi 10.4 Sydney
 
#1

In IFDEF abbrüfen ob für Exe oder DLL kompiliert

  Alt 14. Dez 2007, 10:56
Gibt es eine Möglichkeit in einem $IFDEF abzuprüfen ob für eine Exe oder eine DLL kompiliert wird?

Hintergrund: Wir haben ein Pluginschnittstelle und bei manchen Units die in Exe und DLL verwendet werden müssen Uses-Anweisungen angepaßt werden.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Nuclear-Ping
(Gast)

n/a Beiträge
 
#2

Re: In IFDEF abbrüfen ob für Exe oder DLL kompiliert

  Alt 14. Dez 2007, 11:15
Warum nicht in der Exe ein {$DEFINE COMPILING_FOR_EXE} und dann halt die Weiche: "uses {$IF Defined(COMPILING_FOR_EXE)} AB {$ELSE} CD {$IFEND};"?
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.195 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: In IFDEF abbrüfen ob für Exe oder DLL kompiliert

  Alt 14. Dez 2007, 11:19
Zitat von Nuclear-Ping:
Warum nicht in der Exe ein {$DEFINE COMPILING_FOR_EXE} und dann halt die Weiche: "uses {$IF Defined(COMPILING_FOR_EXE)} AB {$ELSE} CD {$IFEND};"?
Weil ich schon genug Compiler-Direktiven habe und ich jetz eine einfügen will die diesen Teil auch für (andere) Exe's rausschmeißt welche die API-Schnittstelle nicht unterstützen. Und wenn ich jetzt dann hier anfangen muss IFDEF's zu schachteln wird das nicht gerade übersichtlich.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
jottkaerr

Registriert seit: 2. Jul 2007
Ort: Tuttlingen
81 Beiträge
 
Delphi 10.1 Berlin Professional
 
#4

Re: In IFDEF abbrüfen ob für Exe oder DLL kompiliert

  Alt 14. Dez 2007, 11:34
Hallo,

da Du um ein komplettes Build wahrscheinlich sowieso nicht herumkommen wirst (Delphi erstellt eine DCU-Datei ja nur neu, wenn sie älter als die PAS-Datei ist; dass sich ein -- wenn auch vordefiniertes -- Compiler-Symbol geändert haben könnte, ist Delphi egal), kannst Du z.B. ein neues Symbol BUILDING_DLL in den Projektoptionen aufnehmen.

Abhilfe könnte höchstens eine Include-Datei mit {$DEFINE ...} schaffen, die Du in allen relevanten Units einbindest und vor dem Compilieren auf die aktuelle Uhrzeit setzt -- falls Delphi diese Abhängigkeit erkennt, was ich im Moment aber nicht weiß.

Ein Verschachteln der {$IFDEF ...}s wirst Du aber m.E. nicht vermeiden können.

jkr
Jürgen Krämer
Sometimes I think the surest sign that intelligent life exists elsewhere
in the universe is that none of it has tried to contact us. (Calvin)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.195 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: In IFDEF abbrüfen ob für Exe oder DLL kompiliert

  Alt 14. Dez 2007, 12:23
Zitat von jottkaerr:
da Du um ein komplettes Build wahrscheinlich sowieso nicht herumkommen wirst (Delphi erstellt eine DCU-Datei ja nur neu, wenn sie älter als die PAS-Datei ist; dass sich ein -- wenn auch vordefiniertes -- Compiler-Symbol geändert haben könnte, ist Delphi egal),
Ist kein Problem da wir für jedes Projekt Ausgabepfad für die DCU's definieren so das diese immer zum Projekt abgelegt sind.
Zitat von jottkaerr:
Ein Verschachteln der {$IFDEF ...}s wirst Du aber m.E. nicht vermeiden können.
Wäre unschön
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Antwort Antwort


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 10:29 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