Autor Beitrag
galagher
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2510
Erhaltene Danke: 44

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: Mi 31.05.17 20:26 
Hallo!

Ich kann mit meinem Delphi 10.1 ausschliesslich 32Bit-Programme kompilieren. Da frage ich mich doch, ob es nicht einen 64Bit-Compiler dafür gibt, möglichst Freeware.
Muss doch möglich sein: Während des Programmierens verwende ich einfach den integrierten Delphi-Compiler, und wenn alles fertig ist, mache ich dann eine 64Bit-exe-Datei daraus.

Oder ist das doch nicht so einfach?

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 31.05.17 23:56 
- Nachträglich durch die Entwickler-Ecke gelöscht -
Delphi-Laie
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1600
Erhaltene Danke: 232


Delphi 2 - RAD-Studio 10.1 Berlin
BeitragVerfasst: Do 01.06.17 00:44 
user profile iconFrühlingsrolle hat folgendes geschrieben Zum zitierten Posting springen:
Wenn es kostenlos sein soll, ist Lazarus dein Fall. Die kostenlose Entwicklungsumgebung kann 32 und 64bit Anwendungen erzeugen.
Nach Lazarus umzustellen, bedarf etwas an Arbeit. PAS Dateien lassen sich 1:1 übertragen, nicht aber die Projektdateien.
D.h. das Design musst du dort nachbauen, die Logik kannst du aber übernehmen.


Deine Kompetenz und Hilfsbereitschaft in allen Ehren, Frühlingsrolle, für diese bin ich auch heute noch dankbar, aber hier muß ich ganz massiv widersprechen.

Lazarus - oder eben FPC - ist kein Delphi-Clone hinsichtlich der Syntax, dem Delphi nur sehr/ziemlich ähnlich. Auch der Delphimodus in FPC / Lazarus kann das nicht grundsätzlich ändern, auch wenn er die Delphikompatibilität natürlich spürbar erhöht (wäre auch traurig, wenn nicht).

Ich ließ mich - neugierigerweise und experimental - dreimal, bei meinen drei größten Projekten, auf dieses Wagnis ein. Herausgekommen sind - wie hätte es auch anders kommen können - jedesmal separate Lazarus-Projekte, es ging einfach nicht anders. Das eine ist mein "berühmtes" Sortierkino, das andere mein Programm "Prozesse" (zu finden unter dem Suchwort "Prozeßbetrachter"). Das dritte expliziere ich lieber nicht, es war ein Programm, das einen globalen Hook verwandte.

Als Hobby-/Freizeit-/Amateurprogrammierer, das muß ich hier mal heraushängen lassen, schreibe ich ganz gewiß nicht auf hohem Niveau. Generics kenne ich z.B. nur als Wort, nie benötigt. Mit etwas Mühe habe ich mir bisher einmal eine eigene simple Klasse zusammengebastelt, weil ich ohne einfach nicht mehr auskam.

Kurzum und dennoch, man möge also bei einem oder beiden der genannten Projekte einfach die Delphi-Unit-Quelltexte in die Lazarus-Unit-Quelltexte hineinkopieren. Viel Spaß bei bzw. mit "etwas Arbeit"! Aber nein, es wird ja gar keine Arbeit geben, denn diese lassen sich ja (angeblich) 1:1 übernehmen.

Anderes Beispiel: Ich schlug Michael Puff alias Luckie einstmals vor, seinen "XP Usermanager" nach Lazarus zu portieren, um diesen für 64 Bit "flottzumachen". Anscheinend konnte ich sein Interesse wecken. Delphi mit 64 Bit, also mindestens XE 2, gab es nach meiner Erinnerung nämlich damals noch nicht - ganz im Gegensatz zu Lazarus, was hier die Nase vorn hatte (eine Peinlichkeit, die mich heute noch befremdet). Kurzum, als ich bald bei ihm nachfragte / nachhakte, meinte er, daß der Wust an Änderungen, den er auf sich zukommen sah, ihn recht bald zum Aufgeben bewog.


Zuletzt bearbeitet von Delphi-Laie am Do 01.06.17 10:36, insgesamt 1-mal bearbeitet
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 01.06.17 02:06 
- Nachträglich durch die Entwickler-Ecke gelöscht -
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 01.06.17 02:44 
Da es bei 64 Bit ja fast nur um Treiber, Dienste und andere nicht visuelle Programme geht, sollte es nicht so schwer sein mit Lazarus / FPC kompatibel zu bleiben.

Aber es ist schon richtig, dass einige IFDEFs nötig sein könnten...

Bisher hatte ich nur einmal das Vergnügen alten Delphi Code nach Lazarus zu portieren. Unser Lizenzdienst lief als 32bit Version nicht rund unter 64bit Windows und Delphi konnte noch kein 64bit. Das war alter Code, ohne Generics usw., weshalb das ganze recht schnell erledigt war was die reine Portierung angeht.

Das größte Problem war ein Bug, weshalb schlicht der Dienst unter Lazarus nicht gestartet werden konnte. Der war im Repository schon behoben, aber noch nicht im Release drin wie ich nach tagelanger Suche (der Lazarus Debugger ist schrecklich im Vergleich zu Delphi) festgestellt habe.

user profile iconFrühlingsrolle hat folgendes geschrieben Zum zitierten Posting springen:
Es gibt ein paar Schlagwörter/keywords die nur Lazarus kennt, die eben zur Funktion neuer Features wie eben für z.B. Generics beitragen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
type
  generic TGenClass<T> = class
  // ...
end;
Diese Syntax für Generics finde ich z.B. schrecklich und unnötig.

user profile iconFrühlingsrolle hat folgendes geschrieben Zum zitierten Posting springen:

Es gab Anpassungen, die vorgenommen werden mussten:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
// alte Version

  {$IFDEF FPC}
  FHWndProc := LCLIntf.AllocateHWnd(WndProc);
  {$ELSE}
  {$IFDEF DELPHI6_UP} // > D5
  FHWndProc := Classes.AllocateHWnd(WndProc);
  {$ELSE}
  FHWndProc := Forms.AllocateHWnd(WndProc);
  {$ENDIF}
  {$ENDIF}

Warum nicht einfach:
ausblenden Delphi-Quelltext
1:
FHWndProc := AllocateHWnd(WndProc);					


Zuletzt bearbeitet von jaenicke am Do 01.06.17 03:09, insgesamt 2-mal bearbeitet
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 01.06.17 02:58 
- Nachträglich durch die Entwickler-Ecke gelöscht -
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 01.06.17 03:13 
Wird denn die Unit Forms in der uses Klausel bei neueren Delphiversionen und Lazarus benötigt? (Ich habe mir deine Komponente nicht angeschaut.)

Wenn ja, bliebe noch die Auslagerung des Codes in eine separate Unit. Das fände ich immer noch besser als die IFDEFs.
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 01.06.17 03:30 
- Nachträglich durch die Entwickler-Ecke gelöscht -
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 01.06.17 10:29 
user profile iconFrühlingsrolle hat folgendes geschrieben Zum zitierten Posting springen:
Wenn dich die Komponente interessiert, überflieg sie mal schnell. Verbessrungsvorschläge sollten im dafür vorgesehen Topic geschildert werden. ;)
Erledigt. ;-)
Delphi-Laie
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1600
Erhaltene Danke: 232


Delphi 2 - RAD-Studio 10.1 Berlin
BeitragVerfasst: Do 01.06.17 10:39 
user profile iconFrühlingsrolle hat folgendes geschrieben Zum zitierten Posting springen:
Ich empfand's nicht so schlimm.


Nein, ist es auch nicht. Und es ist das Recht der Lazarus-/Freepascalprogrammierer, ihrem Compiler einen eigenen Dialekt zu spendieren.

Nur raubt einem das Zeit, und wenn man die Ursache für die Inkompatibiltät nicht kennt - die Stelle natürlich sehr wohl - muß man ihr auf den Grund gehen, und das kann manchmal fast unendlich viel Zeit benötigen.
galagher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2510
Erhaltene Danke: 44

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: Do 01.06.17 12:45 
Einen 64Bit-Kommandozeilen-Compiler, zB. als Befehlszeilentool, gibt es also wirklich nicht? Kaum zu glauben!

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Do 01.06.17 15:02 
Zitat:
Einen 64Bit-Kommandozeilen-Compiler, zB. als Befehlszeilentool, gibt es also wirklich nicht? Kaum zu glauben!


Doch natürlich. Liegt den kostenpflichtigen Version von Delphi bei. Wenn es denn auch über andere günstige/kostenlose Wege gäbe sollte Embarcadero nochmal über seinen Zuschnitt der kostenlosen Version nachdenken und die Lücke schließen.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 01.06.17 15:49 
Aber ganz ehrlich: Das wäre so ziemlich das letzte Feature, das mir als wichtig für die Starter Edition einfallen würde...
Ich bin mir sehr sicher, dass es das weder offiziell kostenlos in absehbarer Zeit geben wird noch jemand sich die Mühe macht kostenlos (!) so etwas zu entwickeln...

Denn FPC gibt es ja...
galagher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2510
Erhaltene Danke: 44

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: Do 01.06.17 19:57 
user profile iconRalf Jansen hat folgendes geschrieben Zum zitierten Posting springen:
Liegt den kostenpflichtigen Version von Delphi bei.
:D
Ich dachte, so etwas gibt's eventuell von Drittherstellern! Habe natürlich schon gegoogelt - Fehlanzeige. Also habe ich eben hier gefragt!

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Aber ganz ehrlich: Das wäre so ziemlich das letzte Feature, das mir als wichtig für die Starter Edition einfallen würde...
Aber 64Bit ist die Zukunft schon Standard, also, es als das letzte Feature zu bezeichnen...

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Denn FPC gibt es ja...
Free Pascal Compiler - 32Bit, ja.

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 01.06.17 20:49 
user profile icongalagher hat folgendes geschrieben Zum zitierten Posting springen:
Free Pascal Compiler - 32Bit, ja.
Und 64 Bit, ARM und viele andere...
galagher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2510
Erhaltene Danke: 44

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: Do 01.06.17 21:30 
user profile iconRalf Jansen hat folgendes geschrieben Zum zitierten Posting springen:
Zitat:
Einen 64Bit-Kommandozeilen-Compiler, zB. als Befehlszeilentool, gibt es also wirklich nicht? Kaum zu glauben!


Doch natürlich. Liegt den kostenpflichtigen Version von Delphi bei.
Gibt es sie nun nur zusammen mit Delphi, ...

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
user profile icongalagher hat folgendes geschrieben Zum zitierten Posting springen:
Free Pascal Compiler - 32Bit, ja.
Und 64 Bit, ARM und viele andere...
... oder doch auch extra, also nicht von Delphi?

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 01.06.17 22:39 
Free Pascal hat mit Delphi nicht viel zu tun, das gibt es nur separat. Lazarus nutzt z.B. Free Pascal.
Du könntest das durchaus über das Menü Tools in Delphi extern aufrufen, wenn du das wie beschrieben dafür mit pflegst.

user profile icongalagher hat folgendes geschrieben Zum zitierten Posting springen:
Aber 64Bit ist die Zukunft schon Standard, also, es als das letzte Feature zu bezeichnen...
Nur weil die CPU 64 Bit Architektur nutzt, muss man ja nicht auch die Programme als 64 Bit Programm nutzen. Dadurch steigt z.B. der Speicherverbrauch, aber große Vorteile hat man bei 99% der Programme nicht.

Wir liefern aktuell ausschließlich unsere Dienste und unsere großen Anwendungsserver als 64 Bit Programme aus. Die verbrauchen aber auch durchaus mal 20 GiB RAM... das geht nicht unter 32 Bit.
Alles andere sind 32 Bit Programme.

Für diesen Beitrag haben gedankt: galagher
galagher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2510
Erhaltene Danke: 44

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: Fr 02.06.17 18:50 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Free Pascal hat mit Delphi nicht viel zu tun, das gibt es nur separat. Lazarus nutzt z.B. Free Pascal.
Du könntest das durchaus über das Menü Tools in Delphi extern aufrufen, wenn du das wie beschrieben dafür mit pflegst.
Kannst du mir sagen, welchen ich downloaden soll? Ich bin etwas konfus hier: www.freepascal.org/down/x86_64/win64.var

Ist der Compiler dann auch gleich der Linker oder benötige ich diesen extra?

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 02.06.17 21:10 
- Nachträglich durch die Entwickler-Ecke gelöscht -

Für diesen Beitrag haben gedankt: galagher
galagher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2510
Erhaltene Danke: 44

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: Sa 03.06.17 08:56 
user profile iconFrühlingsrolle hat folgendes geschrieben Zum zitierten Posting springen:
Du benötigst erstmal die Entwicklungsumgebung hier.
Ich muss also zuerst Lazarus installieren. Doch nicht so einfach, wie ich dachte. Hatte gehofft, solche Compiler als einzelnes Tool gibt's, nun, vielleicht nicht gerade zu Hauf, aber eben doch!

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!