![]() |
Delphi-Code mit Lazarus kompilieren - es klappt nicht...
Hallo Community,
ich möchte gerne den Delphi-Code von Wolfgang Ehrhardt (Gammatester) ![]() ![]() testweise mit Lazarus kompilieren. Da dies meine ersten Gehversuche mit Lazarus (neueste Version 2.2.6 vom 2023-03-04; FPC-Version 3.2.2) sind, klappt es leider (noch) nicht. :oops: Nehmen wir z. B. amath_2018-11-27.zip Im Code gibt es auch zahlreiche Assembler-Routinen. Mein Ziel ist, eine 32-Bit Exe ausschließlich für Windows zu erzeugen. Würde es mit Lazarus überhaupt gehen, oder ist es von vornherein nicht möglich? Wo und was muß ich in Lazarus einstellen, bzw. wie muß ich vorgehen? Danke für jeden Hinweis im Voraus! |
AW: Delphi-Code mit Lazarus kompilieren - es klappt nicht...
Wenn du den Aufwand für eine Umstellung sparen möchtest, bietet es sich an, mit Delphi eine DLL zu erstellen und deren Funktionen dann in deinem Lazarus Programm zu nutzen.
Ansonsten bleibt nur, den Code anzupassen, denn z.B. fld [x] funktioniert unter Lazarus nicht. Aber ja, klar kann man das anpassen. Ohne Assemblerkenntnisse geht das aber nicht. |
AW: Delphi-Code mit Lazarus kompilieren - es klappt nicht...
In der Lazarus IDE gibt es einen Konverter von Delphi nach FreePascal. Der funktioniert aber nicht in allen Fällen und das Ergebnis muss nachbearbeitet werden.
Ich würde in der Lazarus Community nachfragen. Die helfen gerne. ASM/Assembler gibt es auch im Lazarus, aber mit anderem Aufruf. Haben wir selbst noch nicht verwendet. Sollte aber im Forum beschrieben sein. Generell ist das Forum und FreePascal Wiki ein Handbuch Ersatz. Ggf. sind Pakete nachzuinstallieren. Der reine Lazarus Installer installiert einiges an Paketen mit, diese sind aber nicht alle in der Paketverwaltung aktiv. Alternativ kannst du auch Code Typhoon von Pilotlogic runterladen. Der hat auch einen Delphi Konverter. Unterschied zu Lazarus: CT is böööse, hat fast alle Pakete direkt im Installer und soll angeblich mit ASM besser zurecht kommen. Konvertieren von Delphi nach Lazarus ohne Hilfe vom Lazarus Forum: sehr aufwendig. Das deutsche Lazarus Forum würde ich nicht nehmen, die englische Community ist grösser. NACHTRAG: Grade erst gesehen, dass Delphi XE5 verwendet wird: Lazarus bildet Unicode anders ab. UFT16 vs. UTF8. Kann bei Typkonvertierung ggf. Probleme mit der Zeichendarstellung machen. |
AW: Delphi-Code mit Lazarus kompilieren - es klappt nicht...
Assembler sollte kein Problem sein - ich habs in meiner Lib durchgängig mit Lazarus und Delphi gemacht. Heck die
meisten Routinen wurden in Lazarus entwickelt. Falls dich für die lib begeistern kann dann schau es dir auf ![]() mal an. Vielleicht sind dort ja die Sachen, die du brauchst auch dabei... lg Mike |
AW: Delphi-Code mit Lazarus kompilieren - es klappt nicht...
Zunächst vielen Dank Euch allen für die Tipps & Antworten! :thumb:
Die Sache ist offenkundig komplizierter als ich es mir anfangs gedacht habe, denn ich kann auf Gammatester’s Bibliotheken nicht verzichten, sonst müßte ich meine darauf basierende Arbeit vieler Jahre wegwerfen. Die einfachste Lösung scheint mir noch das Auslagern aller benötigten Delphi-Routinen in eine DLL, wie Sebastian es vorgeschlagen hat. Aber dann würde z. B. eine Lazarus-Exe alleine nicht laufen, nur im Doppelpack mit obiger DLL. Oder sehe ich das falsch? Noch eine weitere Frage hätte ich an Euch: Was muß ich im Lazarus einstellen, damit ich eine stinknormale 32-Bit Konsole-Anwendung für Windows erzeugen kann? Per "Voreinstellung" werden 64-Bit-Programme generiert. Ich brauch aber 32-Bit wegen des Datentyps Extended, der bei 64-Bit nicht mehr existiert. Wenn ich in den Projekt-Optionen das "Ziel-Betriebssystem" auf Win32 umstelle, vermißt der Compiler sofort etliche .ppu – Dateien wie z. B.:
Code:
FEHLER: RTL unit not found: system.ppu
FEHLER: RTL unit not found: objpas.ppu FEHLER: RTL unit not found: sysutils.ppu FEHLER: RTL unit not found: classes.ppu FEHLER: RTL unit not found: avl_tree.ppu FEHLER: RTL unit not found: zstream.ppu |
AW: Delphi-Code mit Lazarus kompilieren - es klappt nicht...
Eigentlich sollte man garkein Extended verwenden.
Es war ursprünglich nur als interne Berechnungen (zwischenschritte) gedacht und garnicht dass der Entwickler ihn direkt nutzt. Dass er im Pascal so auffällig verfügbar ist, war eher ein "Bug". |
AW: Delphi-Code mit Lazarus kompilieren - es klappt nicht...
Ich bin sehr froh über diesen "Bug" in 32-Bit-Pascal, denn meine Berechnungen brauchen die 4 weiteren Nachkommastellen von Extended gegenüber Double... :-D
|
AW: Delphi-Code mit Lazarus kompilieren - es klappt nicht...
Zitat:
Eine Dll ist eine seperate datei, ja. |
AW: Delphi-Code mit Lazarus kompilieren - es klappt nicht...
Zitat:
Ja, sie läuft nur mit der DLL, aber du kannst die DLL auch dynamisch laden, als Ressource mitliefern und vor dem Laden schlicht in das Temp-Verzeichnis auspacken (wenn sie nicht schon bei der Exe liegt). Manche Virenscanner mögen das nicht unbedingt, aber ansonsten funktioniert das sehr gut. |
AW: Delphi-Code mit Lazarus kompilieren - es klappt nicht...
Zitat:
Habe das 64-Bit-Lazarus komplett deinstalliert und komplett durch das brandneue lazarus-3.0RC1-fpc-3.2.2-win32.exe ersetzt. Fazit: Alles läßt sich problemlos kompilieren, nachdem ich mittels Werkzeuge --> Delphi-Umwandlung --> Delphi- in Lazarus-Projekt umwandeln ausgeführt hatte. Vielen Dank für Eure Hilfe! :thumb: :-D :thumb: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:57 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz