Jump to content

Delphi für alle aktuellen Plattformen


Recommended Posts

Moin!

Ich habe mir am Wochenende mal die Pascal/Delphi-Bindings angeschaut und mit Delphi 11 & 12 getestet. Für Windows und OSX lief alles einwandfrei - Linux, IOS und Android brachten einige Compilerfehler. Ich habe mir das Ganze mal angeschaut und korrigiert, so dass alles für alle unterstützten Plattformen compiliert (und mit meinem Testprojekt auch einwandfrei auf Windows, Android (32&64), IOS, OSX und Linux funktioniert. Glücklicherweise haben Embarcadero und ihr gute Vorarbeit geleistet... Alle Systeme, die nicht funktionierten waren "Unix"-Systeme. Ich habe daher an einigen Stellen aus "DELPHI_MACOS" ein "DELPHI_NONWIN" gemacht. Geändert werden mussten dabei nur die TimedSemaphore.pas und die IPConnection.pas.

Einfach gesagt wird in beiden Dateien aus:

{$ifdef FPC}
 {$mode OBJFPC}{$H+}
{$else}
 {$ifdef MACOS}{$define DELPHI_MACOS}{$endif}
{$endif}

ganz banal ein:

{$ifdef FPC}
 {$mode OBJFPC}{$H+}
{$else}
 {$ifndef MSWINDOWS}{$define DELPHI_NONWIN}{$endif}
{$endif}

(Denn alle Zielplattformen außer "MSWINDOWS" sind Unixbasiert und werden ähnlich behandelt.) MSWINDOWS wird in Delphi schon seit Anbeginn der Ewigkeiten definiert, so dass mir das als einfaches Unterscheidungskriterium erscheint...

Als Folge müssen natürlich die ConditionalDefines in der Datei angepasst werden... von {$ifdef DELPHI_MACOS} zu {$ifdef DELPHI_NONWIN}

Dank der sauberen Implementation ist das dann auch schon alles - und alle Zielplattformen lassen sich compilieren.

IPConnection.pas TimedSemaphore.pas

Link zu diesem Kommentar
Share on other sites

  • 2 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Reply to this topic...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...