Betriebsystem unabhängig Programmieren mit PB
Verfasst: 22.12.2005 13:16
Wenn man Plattform übergreifend Programmieren will, so muss man sich an folgende Programmierregeln halten.
1.
Du schreibst einen Quelltext und den Kompilierst du mit PureBasic auf dem Betriebssystem deiner wahl. Als Beispiel z.B. mit Windows Kompiliert erhältst du eine *.exe die nur unter Windows lauffähig ist!
Nun nimmst du den selben Quelltext und den Kompilierst du auf dem Betriebssystem Linux.
Dadurch erhältst du ein Programm das nur unter Linux lauffähig ist!
Dasselbe machst du dann mit dem selben Quelltext, auf den Betriebsystemen MAC oder AMIGA.
Die dann auch nur unter MAC oder Amiga lauffähig sind.
2.
Wenn du z.B. eine Spezielle Funktion aus der Windows-API im Quelltext nutzen willst (Betriebsystem Spezifische Funktion),
funktioniert das Kompilieren nicht mehr unter den anderen Betriebsystemen !!!!
(Windows-API Befehle gibt es eben nur bei Windows)
Dafür gibt es in PureBasic die Befehle (Compilerdirektiven):
CompilerSelect #PB_Compiler_OS und
CompilerCase #PB_OS_xxxxxxxxx
Hier wird während der Kompilierung abgefragt, mit welchem Betriebsystem (auf dem PureBasic gerade läuft) Kompiliert werden soll.
Wenn du z.B. eine Windows-API Funktion nutzt,
aber auf dem Betriebsystem Linux Kompilierst,
so wird folgende Zeile einfach nicht mit kompiliert:
Wie Falko schrieb, kann man somit einfach, dann abhängig vom System, die passenden Quelltexte (Source-Code) Kompilieren.
Wenn man alle Betriebsystem abhängigen Prozeduren, in einzelnen Quelltexte, für die einzelnen Betriebsysteme zusammenlegt.
z.B Amiga.pbi , Linux.pbi, Mac.pbi, Windows.pbi.
Da eine unter Windows Kompilierte *.exe, niemals unter einem anderen Betriebsystem laufen wird (und umgekehrt), muss man im Quelltext mit den Compilerdirektiven entscheiden, was unter welchem OS ausgeführt werden soll.
Zur Laufzeit geht das daher nicht !!
1.
Du schreibst einen Quelltext und den Kompilierst du mit PureBasic auf dem Betriebssystem deiner wahl. Als Beispiel z.B. mit Windows Kompiliert erhältst du eine *.exe die nur unter Windows lauffähig ist!
Nun nimmst du den selben Quelltext und den Kompilierst du auf dem Betriebssystem Linux.
Dadurch erhältst du ein Programm das nur unter Linux lauffähig ist!
Dasselbe machst du dann mit dem selben Quelltext, auf den Betriebsystemen MAC oder AMIGA.
Die dann auch nur unter MAC oder Amiga lauffähig sind.
2.
Wenn du z.B. eine Spezielle Funktion aus der Windows-API im Quelltext nutzen willst (Betriebsystem Spezifische Funktion),
funktioniert das Kompilieren nicht mehr unter den anderen Betriebsystemen !!!!
(Windows-API Befehle gibt es eben nur bei Windows)
Dafür gibt es in PureBasic die Befehle (Compilerdirektiven):
CompilerSelect #PB_Compiler_OS und
CompilerCase #PB_OS_xxxxxxxxx
Hier wird während der Kompilierung abgefragt, mit welchem Betriebsystem (auf dem PureBasic gerade läuft) Kompiliert werden soll.
Wenn du z.B. eine Windows-API Funktion nutzt,
aber auf dem Betriebsystem Linux Kompilierst,
so wird folgende Zeile einfach nicht mit kompiliert:
Code: Alles auswählen
CompilerSelect #PB_Compiler_OS
CompilerCase #PB_OS_Windows
; MS Windows Spezielle Befehle:
RegisterHotKey_( WindowID(Window), HOTKEY_WIN_W, 8, 87)
UnregisterHotKey_(WindowID(Window), HotkeyID)
CompilerEndSelect
Wenn man alle Betriebsystem abhängigen Prozeduren, in einzelnen Quelltexte, für die einzelnen Betriebsysteme zusammenlegt.
z.B Amiga.pbi , Linux.pbi, Mac.pbi, Windows.pbi.
Code: Alles auswählen
CompilerSelect #PB_Compiler_OS
CompilerCase #PB_OS_AmigaOS
; AmigaCode
IncludeFile "Amiga.pbi" ; Code der nur unter Amiga Kompiliert wird
CompilerCase #PB_OS_Linux
; PinguinCode
IncludeFile "Pinguin.pbi" ; Code der nur unter Linux Kompiliert wird
CompilerCase #PB_OS_MacOS
; ApfelCode
IncludeFile "Mac.pbi" ; Code der nur unter MAC Kompiliert wird
CompilerCase #PB_OS_Windows
; FensterCode
IncludeFile "Windows.pbi" ; Code der nur unter Windows Kompiliert wird
CompilerEndSelect
Zur Laufzeit geht das daher nicht !!