Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Umstieg Delphi 2009 -> XE3 (32/64 bit) (https://www.delphipraxis.net/172512-umstieg-delphi-2009-xe3-32-64-bit.html)

Alex_ITA01 8. Jan 2013 12:47

Umstieg Delphi 2009 -> XE3 (32/64 bit)
 
Hallo,
ich wollte meine aktuellen Projekte von Delphi 2009 nach XE3 portieren (mit der 14 Tage Testversion).
Natürlich will ich die Vorzüge des 64bit Compilers nutzen und bin auch schon recht weit beim Umstieg denke ich :-)

Ich wollte jetzt gerne zwei Sachen fragen (hoffentlich schimpft kein Moderator ;-) )

1) Gibt es ein Compilerschalter um zu erkennen, ob ich als 32bit oder 64bit compilere? Ich muss nämlich bestimmte DLL-Aufrufe in der 64bit Umgebung raus nehmen weil ich nur die entsprechende 32bit DLL dazu habe

2) Gibt es generell Anpassungen, die man machen "sollte" beim Umstieg von 32bit auf 64bit? Das Projekt lässt sich unter 64bit compilieren aber ich wollte gerne wissen, ob ihr vielleicht ein paar Tipps/Anregungen habt was man am Programm ändern sollte um bestimmte Sachen zu verbesseren oder zu optimieren bei der 64bit Nutzung. Vielleicht manche Datentypen anpassen für Zugriffsgeschwindigkeiten oder ähnliches meine ich...

Ich hoffe ihr könnt mir hier kurz weiterhelfen.
Danke und viele Grüße
Alex

Horst0815 8. Jan 2013 13:34

AW: Umstieg Delphi 2009 -> XE3 (32/64 bit)
 
1. {$ ifdef cpux86 }

christophspaeth 8. Jan 2013 13:44

AW: Umstieg Delphi 2009 -> XE3 (32/64 bit)
 
Hallo Alex,

1) 64 bit kannst du zur Compilezeit mit dem define CPUX64 erkennen, zur Laufzeit kann man sizeof(pointer) als Anhaltspunkt hernehmen.

2) Ohne dass das jetzt ansatzweise vollständig sein sollte: Stellen, an denen Integer und Pointer aufeinander gecastet/zugewiesen wurden (z.B. diverse Tag oder Data properties) sind problematisch, in der VCL wurden die Tags aber glaube ich alle auf NativeInt geändert. Auch problematisch sein können konstante Ausdrücke, wenn z.B. anstelle sizeof(Pointer) einfach eine 4 im Code steht oder je nachdem könnte $7FFFFFFF oder $FFFFFFFF etc. nicht mehr das ausdrücken, was ursprünglich gemeint war, zumindest wenn ein Teil der Variablen auf Native(U)Int umgestellt wurde.

Ich habe bis jetzt aber selber kaum 64 bit-Anpassungen gemacht, bin also für Ergänzungen/Berichtigungen dankbar :-)

Gruß
Chris

jbg 8. Jan 2013 17:00

AW: Umstieg Delphi 2009 -> XE3 (32/64 bit)
 
Hier gibt es ein paar Informationen zur 32bit nach 64bit Umstellung von Embarcadero selbst (die deutsche Übersetzung hat ein paar Fehler wie z.B. vergessene "nicht")

Alex_ITA01 21. Jan 2013 15:43

AW: Umstieg Delphi 2009 -> XE3 (32/64 bit)
 
Hi zusammen,
zu dem Punkt 1 habe ich mal eine Frage.

{$IFDEF cpux86}
Mir kommt das so vor, als wenn das nicht der Compilerschalter für 32/64Bit Anwendung ist, sondern die vom eingesetzten Rechner vorgegebene Prozessorarchitektur (32/64bit). Korrigiert mich, falls ich falsch liege?! Gibt es eigentlich eine Liste der möglichen Compilerschalter oder woher wisst ihr diesen?

Viele Grüße

RWarnecke 21. Jan 2013 16:13

AW: Umstieg Delphi 2009 -> XE3 (32/64 bit)
 
Ich nehme immer {$IFDEF Win32} und {$IFDEF Win64} um Quelltext für 32Bit und 64Bit zu unterscheiden.

Uwe Raabe 21. Jan 2013 16:20

AW: Umstieg Delphi 2009 -> XE3 (32/64 bit)
 
Zitat:

Zitat von Alex_ITA01 (Beitrag 1199986)
Gibt es eigentlich eine Liste der möglichen Compilerschalter oder woher wisst ihr diesen?

Vordefinierte Bedingungen

Alex_ITA01 22. Jan 2013 07:55

AW: Umstieg Delphi 2009 -> XE3 (32/64 bit)
 
Danke ihr zwei :-)
Nehme jetzt auch {$IFDEF Win64} als Compilerschalter.

Viele Grüße


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:10 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