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 to comment
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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...