Verständnisfrage zu InitNetwork() oder UsePNGDecoder() o.ä.

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
uwe
Beiträge: 17
Registriert: 10.02.2011 23:38
Computerausstattung: PB 5.12 LTS, Manjaro Linux 16 (32-bit)
Wohnort: Oldenburg

Verständnisfrage zu InitNetwork() oder UsePNGDecoder() o.ä.

Beitrag von uwe »

Hi,

Purebasic bietet ja diverse Befehle zum Initialisieren von irgendwelchen Codebibliotheken/-bausteinen an (siehe Beispiele im Betreff). Ich frage mich, wieso man diese explizit aufrufen muss. Der Linker könnte doch beim ersten Vorkommen eines Befehls, welcher eine derartige Initialisierung voraussetzt, diese Aufruf automatisch einfügen, oder übersehe ich da was?

Uwe
Purebasic 5.31 | Fedora 22 (64-bit)
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7039
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Verständnisfrage zu InitNetwork() oder UsePNGDecoder() o

Beitrag von STARGÅTE »

Nein.

Die Image-Plugins müssen vorher initialisiert werden, weil zu Kompilerzeiten noch nicht klar ist, ob mit LoadImage ein PNG-Bild geladen werden könnte.

Die Init-Funktionen müssen selber initiallisiert werden, damit auf den Rückgabe reagiert werden kann.

Zum Beispiel gibt mir InitJoystick() #False zurück, wenn es keinen Joystick gibt.

Würde InitJoystick() automatisch hinzugefügt werden, wenn man zum ersten mal JoystickButton() verwendet, könnte das im schlimmsten Fall zum Absturz führen.
Und eh man dann noch sachen wie IsJoystick() einführen würde, wurde dieser Initialisierungswert auf Init() gesetzt.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Antworten