|
Bibliotheken in Qbasic
Autor: Andre Klein
Abschnitt 1
|
Was ist eine Bibliothek?
| |
Eine Bibliothek ist eine Sammlung von SUB's, FUNCTION's und/oder TYPE's
die in einer Datei gespeichert sind. Diese Datei nennt man Bibliothek und hat in Qbasic die Datei-Endung QLB.
Bibliotheken werden erst ab QB V4.0 unterstützt.
Abschnitt 2
|
Warum sollte ich eine Bibliothek benutzen?
| |
Bibliotheken kann man einsetzen wenn man z.B. sehr viele SUB's geschrieben hat die man sehr oft auch in anderen
Programmen benötigt. Ohne Bibliothek müßtest du immer wieder alle SUB's in dein neues Programm schreiben
oder eine "Blanko"-Datei haben. Das kostet jede Menge Zeit und ist aufwendig!
Wenn du aber eine Bibliothek hast wo diese ganzen SUB's drin stehen, dann brauchst du diese nur 1x laden und
kannst dann alle SUB's benutzen die dort gespeichert sind! Und das ist doch viel bequemer oder?
Ein weiterer Grund für den Einsatz von Bibliotheken wäre der, das du vieleicht deine SUB's an Freunde,
Bekannte und Unbekannte weitergeben möchtest. Und da ist eine Bibliothek besser als ein Quellcode-Programm
wo derjenige sich dann die ganzen SUB's rauskopieren müßte!
Ein weiterer Vorteil ist der, das der Quellcode
selber in einer Bibliothek nicht erkennbar ist! Das heißt du schreibst jetzt z.B. ein Super-SUB und möchtest anderen
die Funkion zeigen. Da du aber willst das keiner wissen soll wie du das gemacht hast, gibst du natürlich nur die
Bibliothek weiter, weil dort der Quellcode ja nicht mehr erkennbar ist!
Anwendungen für Bibliotheken sind z.B. GRAFIK-SUB's, SOUND-SUB's etc. Also solche SUB's die man wirklich
nur einmal schreibt und dann immer wieder benutzt.
Abschnitt 3
|
Wie lade ich eine Bibliothek?
| |
Eine Bibliothek kann erst ab QB V4.0 geladen werden.
Um ein Bibliothek zu laden ruft man QB einfach mit der Option /L auf (L = Library, zu deutsch Bibliothek).
Die ganze Befehlszeile sieht dann so aus:
QB.exe /L namederbibliothek.QLB
bei diesem Aufruf muß man darauf achten das sich die Bibliothek (die QLB-Datei) im aktuellem Verzeichnis
befindet oder der Pfad zur Bibliothek angegeben wird. Ansonsten kommt die Fehlermeldung das die Bibliothek
nicht gefunden wurde.
Wenn man QB /L ohne den Namen einer Bibliothek eingibt dann nimmt QB automatisch die QB-QLB die sich im QB-Hauptverzeichnis befindet.
Dort sind die SUB's CALL ABSOLUTE, CALL INTERRUPT und CALL INTERRUPTX definiert.
Abschnitt 4
|
Wie benutze ich SUB'S wenn ich die Bibliothek geladen habe?
| |
SUB's rufst du mit dem gleichen Befehl auf mit dem du auch SUB's aufrufst die direkt in deinem QB-Programm sind.
Also mit CALL.
z.B. CALL meinsub (option1%,option2%,wert1%)
WICHTIG: Wenn du NUR die QLB-Datei geladen hast, dann mußt du IMMER ein CALL für alle QLB-SUBs benutzen!!!
Und FUNCTION's funktionieren leider auch nicht.
Damit du kein CALL brauchst und FUNCTION's funktionieren mußt du noch eine "BI"-Datei einfügen!
Abschnitt 5
|
Was ist eine BI-Datei?
| |
Wenn du ein QB-Programm schreibst und SUB's anlegst dann schreibt QB automatisch an den Anfang deines Programmes
einige DECLARE-Anweisungen. Das gleiche passiert auch bei FUNCTION's.
Und eine BI-Datei enthält nichts anderes als diese DECLARE-Anweisungen und wenn man sie braucht auch TYPE's.
Ansonsten keinerlei Quellcode.
Abschnitt 6
|
Wie lade ich eine BI-Datei?
| |
um eine BI-Datei zu laden mußt du in deinem QUELLCODE-Programm folgendes schreiben:
REM $INCLUDE: 'namederbidatei.BI'
Diese Datei muß sich im aktuellem Verzeichnis befinden oder es muß der Pfad zu der Datei mit angegeben werden.
Wenn eine BI-Datei zusätzlich zu der dazugehörigen QLB geladen wird, brauchst du auch kein CALL mehr vor deine SUB-Aufrufe
schreiben und FUNCTION's funktionieren dann auch problemlos.
Ein Beispiel für eine BI-Datei ist die QB.BI im QB-Hauptverzeichnis.
Abschnitt 7
|
Wie erstelle ich eine Bibliothek?
| |
Um eine Bibliothek erstellen zu können, brauchst du theoretisch mindestens QB V4.0.
QB V4.0 kann zwar Bibliotheken erstellen, produziert bei mir aber immer einen Fehler.
Deshalb benutze ich QB V4.5.
Vorgangsweise:
1. schreibe ein QB-Programm mit allen SUB's, FUNCTION's und TYPE's die du später in deiner Bibliothek haben möchtest.
2. wenn du das gemacht hast und alles funtioniert dann gehe auf AUSFÜHREN und dann auf BIBLIOTHEK erstellen.
3. Gib den Namen der Bibliothek ein. z.B. "TEST" . Die Bibliothek heißt dann TEST.QLB.
4. Das Kreuz bei DEBUG-CODE ERSTELLEN kannst, mußt du aber nicht machen. Das dient nur zur Fehlerbehandlung in deiner Bibliothek.
5. Wenn das erledigt ist, gehst du auf BIBLIOTHEK ERSTELLEN oder auf BIBLIOTHEK ERSTELLEN UND BEENDEN und drückst ENTER.
6. Jetzt kommt ein schwarzer Bildschirm mit jeder Menge Informationen über das Erstellen der Bibliothek.
Dort zeigt er dir auch an wenn irgendwelche Fehler aufgetreten sind.
7. Wenn er keine Fehler gefunden hat und alles geklappt hat, dann müßte sich jetzt im Verzeichnis eine TEST.QLB und eine TEST.LIB befinden.
Die QLB-Datei ist deine fertige Bibliothek. Die LIB-Datei ist eine Art Zwischencode in der zwar alle SUBS usw. drinstehen, aber QB kann sie nicht
benutzen. Sie erfüllt einen anderen Zweck zu dem ich später noch kommen werde.
Damit ist die Bibliothek fertig.
Was wir jetzt noch brauchen ist eine BI-Datei für unsere Bibliothek.
Abschnitt 8
|
Wie erstelle ich eine BI-Datei?
| |
um eine BI-Datei zu erstellen markierst du in deinem QB-Programm alle DECLARE- und TYPE-Anweisungen.
Gehst auf BEARBEITEN und KOPIEREN.
Dann gehst du auf DATEI und NEU.
Dort fügst du die soeben kopierten DECLARE-Anweisungen ein.
Dann DATEI -> SPEICHERN UNTER. Dort gibst du den Namen für deine BI-Datei ein und speicherst das ganze.
WICHTIG: schreibe .bi unbedingt dazu sonst speichert er es als BAS-Datei.
Das wars dann auch schon.
Jetzt hast du eine fertige QLB-Datei mit der dazugehörigen BI-Datei. Diese kannst du jetzt wie bei "Wie lade ich eine Bibliothek?" in deinem Programm verwenden.
Abschnitt 9
|
Was hat es mit der LIB-Datei auf sich?
| |
Eine LIB-Datei entsteht wenn man mit QB eine Bibliothek erstellt. In ihr sind, genauso wie in der QLB-Datei, auch alle SUB's und FUNCTION's
gespeichert. Aber QB kann mit einer LIB nichts anfangen, da eine LIB-Datei soetwas wie einen Zwischencode enhält.
aber man kann mit ihr eine schöne andere Sache machen!
Beispiel:
Du hast eine Bibliothek erstellt die nur Grafik-SUB's enthält und eine 2. Bibliothek die nur Sound-Subs enthält.
Du hast jetzt folgende Dateien: grafik.QLB, grafik.LIB, sound.QLB, sound.LIB
So, und jetzt möchtest du ein Programm schreiben das sowohl grafik als auch sound benutzt und müßtest eigentlich
2 Bibliotheken laden.
ABER: Das Problem ist das man immer nur 1 Bibliothek laden kann.
Also müßte man irgendwie aus 2 Bibliotheken 1 machen.
Und dafür sind die LIB-Dateien da. Denn man kann aus mehreren LIB-Dateien eine neue QLB-Datei machen.
Abschnitt 10
|
Wie erstelle ich eine QLB-Datei aus mehreren LIB-Dateien?
| |
Diesen Befehl mußt du in der Befehlszeile eingeben:
LINK.EXE /QU erste.LIB + zweite.LIB + ... , namederneuenqlb.QLB, NUL , BQLB45
Und schon hast du eine Bibliothek die sich aus mehreren LIB's zusammensetzt.
WICHTIG: für andere QB-Versionen darf man nicht BQLB45 nehmen sondern muß dann die dazugehörige nehmen.
TIP: wenn du Speicher sparen möchtest kannst du deine ganzen SUB's in einzelne LIB's tun und ein Programm schreiben
das je nach Bedarf die jeweiligen LIB's/SUB's zu einer QLB-Datei zusammenfügt.
Das nennt man dann ein Baukastenprinzip!
Abschluss
|
letzte Aktualisierung: 11.07.2003
| |
So ich hoffe das war ausführlich und verständlich genug. Wenn du weitere Fragen hast oder ich irgend etwas falsch beschrieben habe, dann
Mail an Webmaster.
|
|
|