AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Compiler-Defines ?

Ein Thema von himitsu · begonnen am 27. Feb 2015 · letzter Beitrag vom 27. Feb 2015
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#1

Compiler-Defines ?

  Alt 27. Feb 2015, 18:09
Delphi-Version: XE7
Moin moin,

hat zufällig jemand mit XE7 und iOS/Max/Android 'nen Sekündchen Zeit?
Es geht einfach nur im die Verifizierung der DEFINES/Features der Compiler.

So müsste es z.B. irgendwo das BIGENDIAN-Define geben (aber vielleicht kommt das ja auch erst mit Linux, WinRT, Blackberry, Windows Mobile 7, ...)

Laut den wenigen Informationen/Beschreibungen hätte ich gedacht, daß WEAKREF, WEAKINSTREF (Objekte), WEAKINTREF (Interfaces) überall gleich sind.
Aber schon im NextGen-Compiler für Android gibt es erschreckender Weise kein WEAKINTREF.
Wobei man das WEAKINTREF eigentlich hätte überall einbauen sollen.

Bin ich zu doof, oder gibt es wirklich kein MacOS-Define? (OS X)
MACOS scheint ja bei OS X und iOS definiert zu sein. Oder wie soll man da zwischen Mobil und Desktop unterscheiden können?

Wenn iOS-Sim kein NEXTGEN ist, dann würde mich interessieren, wie man z.B. 0-based-Strings erkennt. Oder soll man da wirklich immer Low(String) auswerten?


Einfach den Code in eine Geräteübergreifende Anwendung einfügen, eine Plattform auswählen,
kompilieren und überall, wo blaue (Halte)Punke erscheinen, hinten 'nen Sternchen/Icks rein.
Alternativ vor jedes Beep ein * und ein * hinter Alles (damit man nicht stundenlang warten muß, bis es mit Linken fertig ist),
dann kompileren und wo es knallt, die * löschen ... wo am Ende kein Stern mehr ist, hinten den Stern eintragen.

Code:
procedure TForm3.FormCreate(Sender: TObject);
begin
                                                // Win32 Win64 Android iOS-Dev iOS-Sim OSX
  {$IFDEF BIGENDIAN}            Beep; {$ENDIF}  //                     -       -       -

  {$IFDEF CONSOLE}              Beep; {$ENDIF}  // ?     ?             -       -       -
  {$IFDEF MSWINDOWS}            Beep; {$ENDIF}  // *     *             -       -       -
  {$IFDEF WIN32}                Beep; {$ENDIF}  // *                   -       -       -
  {$IFDEF WIN64}                Beep; {$ENDIF}  //       *             -       -       -
  {$IFDEF MACOS}                Beep; {$ENDIF}  //                     .       .       .
  {$IFDEF MACOS32}              Beep; {$ENDIF}  //                     .       .       .
  {$IFDEF IOS}                  Beep; {$ENDIF}  //                     .       .       -
  {$IFDEF ANDROID}              Beep; {$ENDIF}  //             *       -       -       -
  {$IFDEF LINUX}                Beep; {$ENDIF}  //                     -       -       -
  {$IFDEF LINUX32}              Beep; {$ENDIF}  //                     -       -       -
  {$IFDEF POSIX}                Beep; {$ENDIF}  //             *       .       .       .
  {$IFDEF POSIX32}              Beep; {$ENDIF}  //             *       .       .       .

  {$IFDEF CPUX86}               Beep; {$ENDIF}  // *                   -       .       .
  {$IFDEF CPUX64}               Beep; {$ENDIF}  //       *             -       -       -
  {$IFDEF CPUARM}               Beep; {$ENDIF}  //             *       .       -       -

  {$IFDEF ASSEMBLER}            Beep; {$ENDIF}  // *     *             -       .       -
  {$IFDEF AUTOREFCOUNT}         Beep; {$ENDIF}  //             *       .       .       -
  {$IFDEF NEXTGEN}              Beep; {$ENDIF}  //             *       .       .       -
  {$IFDEF PC_MAPPED_EXCEPTIONS} Beep; {$ENDIF}  //                     -       .       .
  {$IFDEF UNDERSCOREIMPORTNAME} Beep; {$ENDIF}  // *                   -       .       .
  {$IFDEF WEAKREF}              Beep; {$ENDIF}  //             *       .       .       -
  {$IFDEF WEAKINSTREF}          Beep; {$ENDIF}  //             *       .       .       -
  {$IFDEF WEAKINTREF}           Beep; {$ENDIF}  //                     .       .       -

end;
(ja, das sind keine Delphi-Tags, der dann immer die schönen Leerzeichen geschrottet werden)
$2B or not $2B

Geändert von himitsu (27. Feb 2015 um 18:19 Uhr)
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Compiler-Defines ?

  Alt 27. Feb 2015, 18:25
Mac OS:
MACOS, MACOS32, POSIX, POSIX32, CPUX86, ASSEMBLER, PC_MAPPED_EXCEPTIONS, UNDERSCOREIMPORTNAME

iOS-Simulator:
MACOS, MACOS32, IOS, POSIX, POSIX32, CPUX86, ASSEMBLER, AUTOREFCOUNT, NEXTGEN, PC_MAPPED_EXCEPTIONS, UNDERSCOREIMPORTNAME, WEAKREF, WEAKINSTREF

iOS-Device (32bit)
MACOS, MACOS32, IOS, POSIX, POSIX32, CPUARM, AUTOREFCOUNT, NEXTGEN, WEAKREF, WEAKINSTREF

iOS-Device (64bit)*
MACOS, IOS, POSIX, CPUARM, CPUARM64, CPU64BITS, AUTOREFCOUNT, NEXTGEN, WEAKREF, WEAKINSTREF
*... vermutlich
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Compiler-Defines ?

  Alt 27. Feb 2015, 18:26
MACOS scheint ja bei OS X und iOS definiert zu sein. Oder wie soll man da zwischen Mobil und Desktop unterscheiden können?
Du prüfst auf MACOS und/oder IOS und den CPU-Typ. Damit kannst Du zuverlässig Desktop vs. Mobil und Gerät vs. Simulator erkennen.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#4

AW: Compiler-Defines ?

  Alt 27. Feb 2015, 18:41
Danke

Delphi-Quellcode:
{$ID Defined(MACOS) and not Defined(IOS)} = OSX
{$ID Defined(MACOS) and Defined(IOS)} = iOS
{$ID Defined(MACOS) and Defined(IOS) and not Defined(CPUARM)} = iOS Simulator
...
Gut, hätte ja sein können, das ginge einfacher.
Das CPU war irgendwie aus meinem Blickwinkel und sonst sehen OSX und iOSSim ja gleich aus.


Aber meine Vermutung bestätigt sich dann, denn WEAKINTREF gibt es wirklich nirgendwo, obwohl es das angeblich gibt.
Wenn man hier jetzt auf die OH gehört hätte und treudoof überall nur WEAKREF prüft, der fällt schmerzhaft hin, da der Compiler auch nix sagt, wenn er das [Weak] einfach so ignoriert.
$2B or not $2B
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Compiler-Defines ?

  Alt 27. Feb 2015, 18:50
Kann es sein, dass Du Dich verschrieben hast?
Dat Dingen heisst "WEAKINTFREF" und ist bei mir durchaus definiert (Nextgen-Compiler & iOS-Simulator)
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Compiler-Defines ?

  Alt 27. Feb 2015, 19:01
Die WEAK-Defines funktionieren allesamt wie beschrieben:
http://docwiki.embarcadero.com/RADSt...ation_(Delphi)
Daniel R. Wolf
mit Grüßen aus Hamburg

Geändert von Daniel (27. Feb 2015 um 19:13 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#7

AW: Compiler-Defines ?

  Alt 27. Feb 2015, 19:10
Jupp, den Link kenn ich, aber da steht es ohne F
Zitat:
WEAKINTREF not defined not defined not defined DEFINED DEFINED DEFINED
[edit]
Mit F geht es nun auch im Android.
(fehlen nur noch die Nicht-NextGens)
$2B or not $2B

Geändert von himitsu (27. Feb 2015 um 19:13 Uhr)
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Compiler-Defines ?

  Alt 27. Feb 2015, 19:12
Ach, ein "F" mehr oder weniger. Vermutlich wird es sich um eine verlustbehaftete Datenkompression im Wiki handeln.

//edit: Ich sage denen mal bescheid.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#9

AW: Compiler-Defines ?

  Alt 27. Feb 2015, 19:23
Bei iOSDev und iOSSim ist dann auch das WEAKINTFREF definiert? (auch wenn iOSDev wohl kein NextGen ist)
$2B or not $2B
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: Compiler-Defines ?

  Alt 27. Feb 2015, 19:27
"WEAKINTFREF" ist für iOS-Geräte und den iOS-Simulator definiert.
Es ist ja ein Nextgen-Compiler (kann man ja mit "IFDEF NEXTGEN" prüfen, welches für beide definiert ist).
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz