Einzelnen Beitrag anzeigen

Bambini
(Gast)

n/a Beiträge
 
#7

AW: IDE und IFDEFs für verschiedene Plattformen

  Alt 2. Aug 2016, 16:32
Ja ich weiss: du möchtest jetzt wahrscheinlich nicht allzuviel umstellen.

Aber ich lege meinen Code wenn möglich separat für verschiedene Plattformen an, also

Delphi-Quellcode:
Unit MyCode; // Das hier benutze ich in den Apps

uses
  System.Types
{$IFDEF WIN32}
  ,MyCode.Win32
{$ENDIF WIN32}
{$IFDEF WIN64}
  , MyCode.Win64
{$ENDIF WIN64}
{$IFDEF OSX}
  , MyCode.OSX
{$ENDIF OSX}
  ;
Auch bei wenig Code ist das die sauberste Methode, und sollte auch unütze Referenzierungen vermeiden,
wenn es bei Android und iOS mal sparsam zugehen muss.

Ich finde der Mehraufwand lohnt sich schon auf lange Sicht, und alles bleibt gut überschaubar und wartbar.
Hm, vielleicht verstehe ich es nicht richtig, das uses in deiner MyCode Unit führt nicht dazu, dass die Klassen, Funktion & Co. der MyCode.xx Unit nach außen sichtbar sind.
Das bekommt nur ein unschönes {$INCLUDE ...} hin oder wie es Delphi macht, ein wildes RegisterXYZ in der initialization Section.
Schicke wäre die gleiche Art wie das Unit-Gültigkeitsbereichsnamen, nur diesmal für das Suffix, in den Projekteigenschaften für jede Plattform.
Setzt man da z.B. in dem Ziel für "Alle Konfigurationen - 32-Bit-Windows" ein 'win' ein, Sollte Delphi versuchen zuerst die MyCode.win.pas zu verwenden obwohl im Code nur uses MyCode steht, gibt es die nicht dann die MyCode.pas.
Das finde ich sehr elegant.

Geändert von Bambini ( 2. Aug 2016 um 16:38 Uhr)
  Mit Zitat antworten Zitat