Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Lazarus (IDE) (https://www.delphipraxis.net/81-lazarus-ide/)
-   -   Delphi-Code mit Lazarus kompilieren - es klappt nicht... (https://www.delphipraxis.net/213382-delphi-code-mit-lazarus-kompilieren-es-klappt-nicht.html)

Andreas13 20. Jul 2023 22:53

Delphi-Code mit Lazarus kompilieren - es klappt nicht...
 
Hallo Community,
ich möchte gerne den Delphi-Code von Wolfgang Ehrhardt (Gammatester)

http://web.archive.org/web/*/wolfgang-ehrhardt.de oder https://github.com/maelh/www.wolfgang-ehrhardt.de

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!

jaenicke 21. Jul 2023 00:31

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.

johndoe049 21. Jul 2023 01:20

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.

rabatscher 21. Jul 2023 10:19

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
https://github.com/mikerabat/mrmath
mal an. Vielleicht sind dort ja die Sachen, die du brauchst auch dabei...

lg
Mike

Andreas13 21. Jul 2023 21:35

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

himitsu 21. Jul 2023 21:57

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".

Andreas13 21. Jul 2023 22:10

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

KodeZwerg 21. Jul 2023 22:26

AW: Delphi-Code mit Lazarus kompilieren - es klappt nicht...
 
Zitat:

Zitat von Andreas13 (Beitrag 1524798)
Was muß ich im Lazarus einstellen, damit ich eine
stinknormale 32-Bit Konsole-Anwendung für Windows
erzeugen kann?

Du musst 32bit compiler mit bibliotheken installiert haben, vielleicht installierst du es in ein seperates verzeichniss nochmal, die 32bit version von freepascal/lazarus.
Eine Dll ist eine seperate datei, ja.

jaenicke 21. Jul 2023 23:13

AW: Delphi-Code mit Lazarus kompilieren - es klappt nicht...
 
Zitat:

Zitat von Andreas13 (Beitrag 1524798)
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.

Du kannst auch Interfaces verwenden. Dann kannst du deine vermutlich ja ohnehin schon bestehenden Klassen einfach komplett in die DLL packen und über Interfaces ansprechen.

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.

Andreas13 22. Jul 2023 00:19

AW: Delphi-Code mit Lazarus kompilieren - es klappt nicht...
 
Zitat:

Zitat von KodeZwerg (Beitrag 1524801)
Du musst 32bit compiler mit bibliotheken installiert haben, vielleicht installierst du es in ein seperates verzeichniss nochmal, die 32bit version von freepascal/lazarus.

Daran hat es gelegen! :thumb:
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.
Seite 1 von 2  1 2      

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