AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

IFDEF Win32 verschwindet

Ein Thema von charly52 · begonnen am 8. Aug 2022 · letzter Beitrag vom 24. Aug 2022
Antwort Antwort
Seite 1 von 2  1 2      
charly52

Registriert seit: 2. Sep 2018
Ort: Salem, Baden
102 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

IFDEF Win32 verschwindet

  Alt 8. Aug 2022, 11:10
Hi all,

Bisher hatte ich nur in der 32Bit Umgebung zu tun.
Jetzt brauche ich für eine ISAP-Dll jetzt die Win64 Plattform. Dazu habe ich alte Sourcen wie folgt modifiziert.


Delphi-Quellcode:
 requires
  rtl,
  dbrtl,
  vcldb,
  BasisUnits270,
{$IFDEF Win32}                    <-------------------- neu
  designide,
{$ENDIF Win32}                    <-------------------- neu
  TxTextControlPack;

contains
  Just1_32Run in '..\..\JUSTONE\Just1_32Run.pas',
{$IFDEF Win32}                              <-------------------- neu
  Just1_32Dsgn in '..\..\JUSTONE\Just1_32Dsgn.PAS',
  AliGridReg in 'COMPO\AliGridReg.pas',
{$ENDIF Win32}                             <-------------------- neu
  Aligrid in 'COMPO\Aligrid.pas',
  XFEdit in 'UNI\XFEdit.PAS',
Das funktioniert auch, lässt sich kompilieren.
Wenn ich dann eine Win32 / release/debug Version kompiliere und wieder zu Win64 zurück gehe
sind die {$IFDEF Win32} wieder weg.
Habe irgendwo hier auch schon mal ne Bemerkung gelesen, daß die IDE das wohl gerne macht.
Finde es aber nicht mehr

Was kann man tun außer jedes mal die IFDEFs neu einzutragen?

Charly
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: IFDEF Win32 verschwindet

  Alt 8. Aug 2022, 11:25
Mit Delphi 11 funktioniert es besser und nicht alles verschwindet sofort, aber per se sind automatisch verwalteten Teile der Projektdatei nicht für sowas zu nutzen. (bzw. es funktioniert, aber man muß aufpassen, dass diese Projektdatei nicht in der IDE gespeichert wird)

Das betrifft die Requires und auch das Uses in DPR/DPK,
also alles, was in der IDE über die Projektverwaltung verwaltet wird.



Aber du hast hier eh ein Problem in sich selber.
Ein DesignTime-Package ist immer ausschließlich Win32. (es gibt leider noch keine Win64-IDE)

Erstelle dir zusätzlich noch ein Runtime-Package und schon ist das Problem Ad acta.




Kompilierst du mit Laufzeitpackages?
Dann war es früher eh falsch, denn diese Design-Funktion haben nichts im Endprodukt zu suchen.
Und wenn nicht, dann brauchst du das Package sowieso nur als Win32, weil es ausschließlich von der IDE benutzt wird.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 8. Aug 2022 um 11:32 Uhr)
  Mit Zitat antworten Zitat
Rolf Frei

Registriert seit: 19. Jun 2006
647 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: IFDEF Win32 verschwindet

  Alt 8. Aug 2022, 13:42
Ist dir klar, dass du auch 32 Bit ISAPI nutzen kannst und nicht auf 64 Bit gezwungen bist? Das ist eine IIS Einstellung im verwendeten AppPool. Dort kannst du unter Erweiterte Einstellugnen "32-Bit-Anwendungen aktiviereren" auf True setzen. So kann die ISAPI 32 Bit sein, auch auf einem Win64 Server.
  Mit Zitat antworten Zitat
Andreas13

Registriert seit: 14. Okt 2006
Ort: Nürnberg
719 Beiträge
 
Delphi XE5 Professional
 
#4

AW: IFDEF Win32 verschwindet

  Alt 8. Aug 2022, 14:17
Hallo,
ich weiß nicht, ob es bei Delphi 10.2 Tokyo anders ist als bei meinem "alten" XE5, aber die korrekte Syntax lautet nicht so:
Zitat:

{$IFDEF Win32} <-------------------- neu
designide,
{$ENDIF Win32} <-------------------- neu
...
sondern nur
Delphi-Quellcode:
...
{$IFDEF Win32}  
  designide,
{$ENDIF}      <-------------------- so
...
Vielleicht hängt es damit zusammen?
Grüße
Andreas
Grüße, Andreas
Wenn man seinem Nächsten einen steilen Berg hinaufhilft, kommt man selbst dem Gipfel näher. (John C. Cornelius)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#5

AW: IFDEF Win32 verschwindet

  Alt 8. Aug 2022, 14:42
Der Compiler ist in diesem Bereich ziemlich resilient. Die Auswertung der Compiler Directive bricht beim ersten unerwarteten Zeichen ab, behält aber die bis dahin ermittelte Bedeutung. Aus diesem Grund geht ja auch sowas:
Delphi-Quellcode:
{$IF CompilerVersion < 34.0 Delphi 10.4 Sydney }
    function ScaleValue(const Value: Integer): Integer;
{$ENDIF}
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Rollo62
Online

Registriert seit: 15. Mär 2007
4.095 Beiträge
 
Delphi 12 Athens
 
#6

AW: IFDEF Win32 verschwindet

  Alt 8. Aug 2022, 16:59
Der Compiler ist in diesem Bereich ziemlich resilient. Die Auswertung der Compiler Directive bricht beim ersten unerwarteten Zeichen ab, behält aber die bis dahin ermittelte Bedeutung. Aus diesem Grund geht ja auch sowas:
Delphi-Quellcode:
{$IF CompilerVersion < 34.0 Delphi 10.4 Sydney }
    function ScaleValue(const Value: Integer): Integer;
{$ENDIF}
Jupp, ich kann auch bestätigen dass dies bei $ENDIF oder $ELSE kein Problem für den Compiler ist
Delphi-Quellcode:
{$IFDEF Win32}  
  designide,
{$ELSE  WIN32_ELSE }      <-------------------- so
 ....
{$ENDIF WIN32_ELSE}       <-------------------- so
  Mit Zitat antworten Zitat
charly52

Registriert seit: 2. Sep 2018
Ort: Salem, Baden
102 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

AW: IFDEF Win32 verschwindet

  Alt 9. Aug 2022, 09:09
Danke für die Infos.

@ Rolf Frei. Das war mir so nicht klar, irgendwo hatte ich was gefunden, was das Gegenteil behaupted. Aber an die 64bit werde ich mich ja eh irgendwann gewöhnen müssen.


Mit Delphi 11 funktioniert es besser und nicht alles verschwindet sofort, aber per se sind automatisch verwalteten Teile der Projektdatei nicht für sowas zu nutzen. (bzw. es funktioniert, aber man muß aufpassen, dass diese Projektdatei nicht in der IDE gespeichert wird)

Das betrifft die Requires und auch das Uses in DPR/DPK,
also alles, was in der IDE über die Projektverwaltung verwaltet wird.
Wie muss ich das verstehen? Wie kann ich verhindern daß diese Projektdatei in der IDE gespeichert wird? Oder wie kann man es sonst regeln?

Danke!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: IFDEF Win32 verschwindet

  Alt 9. Aug 2022, 11:58
Wir hatten auch sowas, aber weil es im XE immer kaputt gemacht wurde, hatten wir diese Teile dann in eine Unit ausgelagert,
zumindestens bei den USES funktioniert es.

Seit Delphi 11 macht Delphi sowas nicht mehr (seltener) kaputt, so als wenn sie IF/IFDEF dort jetzt halbwegs beachten würden.



Auch gibt es noch das {$IFDEF IMPLICITBUILDING} , oben um die CompilerSettings, welches im XE immer kaputtgemacht (entfernt) wurde,
denn egal was jemand behauptet, dieser Schreißdreck darf NIEMALS kompilert werden.
Die "richtigen" Settings kommen aus dem Projekt und Delphi speichert in der DPR/DPK nur die BASIS-Settings, aber kompiliert wird z.B. mit "Debug" oder "Release", womit hier Alles schief stünde, würde damit kompiliert.

Auch beim IMPLICIT-BUILDING ist der Dreck ein totaler Mister, weil, wie gesagt, sind es die falschen Settings und bei Implizit wird die DPROJ ignoriert, also wirklich ALLES ist falsch, weil der Compiler nichtmal weiß, wo er dieses Compilat ausgeben soll. (das Standard-Package-Verzeichnis von Delphi ist es bei uns jedenfalls nicht)






sondern nur
Delphi-Quellcode:
...
{$IFDEF Win32}  
  designide,
{$ENDIF}      <-------------------- so
Jupp, ist egal.

bei ENDIF und ELSE ab dem ersten und IFDEF ab dem zweiten "Parameter" wird es vom Compiler einfach quasi als Kommentar erkannt, also quasi ignoriert.

Besonders blöd bei Ressourcen, wo der zweiter Parameter nur in DPR/DPR genutzt wird, aber in PAS wird er einfach ohne Hinweis/Meldung ignoriert.
{$R abc.res abc.rc} (direkt im Projekt, kann Delphi dort die RC selber compilieren und so die RES aktualisieren)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 9. Aug 2022 um 12:10 Uhr)
  Mit Zitat antworten Zitat
charly52

Registriert seit: 2. Sep 2018
Ort: Salem, Baden
102 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#9

AW: IFDEF Win32 verschwindet

  Alt 10. Aug 2022, 09:47
Hi

vieleicht sollte man mehr auf Embarcadero einwirken, daß die sich lieber mal um eine stabile IDE kümmern, als dauernd neue Features rauszubringen.
Die Frage ist nur WIE?

Charly
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: IFDEF Win32 verschwindet

  Alt 10. Aug 2022, 10:31
quality.embarcadero.com
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 09:35 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