Forum moved to if-forum.org
Autor Nachricht
<  Einbinden einer eigenen Lib
Marc
BeitragVerfasst am: Mi, 21 Mai 2003 - 10:19  Antworten mit Zitat
Gast





Ich habe zum "Rumprobieren" (bin gerade schwer am Inform-Lernen) eine eigene Library geschrieben, die menugestützte Konversationen mit NPCs ermöglicht (gibt es zwar schon zuhauf im Netz, aber wie gesagt, zum Rumprobieren).
Nun stosse ich auf folgendes Problem: in dieser Lib sind sowohl Klassendefinitionen wie auch Verbdefinitionen enthalten. Wenn ich sie in meinem Story-File nun aber nach GermanG einbinde, dann meckert der Compiler, dass die Klassen, die ich natürlich in meiner Story verwenden muss, nicht definiert seien. Logisch - der "Include"-Befehl steht dann ziemlich am Ende der Story-Datei.
Wenn ich sie aber am Anfang (vor den Objekten meines Spiels) einbinde, dann beschwert sich das Ding über die Verbdefinition innerhalb der Lib, weil eben GermanG noch nicht eingebunden ist und somit der "Extend"-Befehl in der Lib keinen Sinn macht.
Ich könnte natürlich GermanG auch am Anfang der Story einbinden, ich habe aber Befürchtungen, damit früher oder später auf Bugs zu stoßen, weil eben JEDER GermanG erst nach den Spielobjekten einbindet.
Ich könnte auch die Verbdefinition in das Story-File selbst einbinden, müsste dann aber bei jedem neuen Spiel daran "denken". Außerdem habe ich schon Libs gesehen, bei denen das mit beidem einwandfrei funktioniert.
Lange Rede (schnauf, atem-hol), kurzer Sinn - habt ihr die Lösung für das Problem??
Vielen Dank schon mal...
Nach oben
ChrisW
BeitragVerfasst am: Mi, 21 Mai 2003 - 22:50  Antworten mit Zitat
Abenteurer
Abenteurer


Anmeldungsdatum: 26.08.2002
Beiträge: 278
Wohnort: Leipzig

Mmh, ich würd die selbstgeschriebene Library einfach in zwei Dateien aufteilen und eine davon am Anfang der Spieldatei, die andere nach GermanG einbinden. In die Erste packst du dann die Klassen-, in die Zweite die Verbdefinitionen.

Kennt jemand noch eine bessere Variante?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Kris
BeitragVerfasst am: Di, 22 Jun 2004 - 22:01  Antworten mit Zitat
Kompassleser
Kompassleser


Anmeldungsdatum: 21.02.2004
Beiträge: 198
Wohnort: Rheinmain

Wenn es noch interressiert:

Man kann mit Ifdef/Ifndef arbeiten (DM4 §38 Controlling compilation from within)

Ifndef [name];

.... 1Teil der Extension
Endif


Ifdef [name];

.... 2Teil der Extentson

Endif


Der erste Teil wird berücksichtigt, wenn [name] noch nicht deklariert wurde (Ifndef = WennNichtDefiniert) (z.B. ein Variable oder Konstante), Teil zwei wenn sie deklariert wurde (Ifdef = WennDefiniert).

Das File.h muss also zweimal inkludiert werden, dazwischen irgendwo muss eben diese Variable deklariert worden sein:

Anfang....


Include Extention.h

....

Constant name;


....

Include Extention.h

...


Wenn das nicht so verständlich war, einfach mal im DM4 § 38 nachschauen ;-)

Grüße

Kris
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
ChrisW
BeitragVerfasst am: Di, 22 Jun 2004 - 23:30  Antworten mit Zitat
Abenteurer
Abenteurer


Anmeldungsdatum: 26.08.2002
Beiträge: 278
Wohnort: Leipzig

Die Konstante könntest du auch im ifndef-Block setzen (die Abfrage hat ja dann schon stattgefunden), dann müsste das der Autor nicht in der Spieldatei machen, sondern bräuchte wirklich nur zweimal die Datei einzubinden.
_________________
"Ein Musiker! Was will der hier so spät?" Stolzing (Meistersinger v.N.)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Kris
BeitragVerfasst am: Mi, 23 Jun 2004 - 8:45  Antworten mit Zitat
Kompassleser
Kompassleser


Anmeldungsdatum: 21.02.2004
Beiträge: 198
Wohnort: Rheinmain

Stimmt! Darauf bin ich noch gar nicht gekommen.

Das machts dann für den Anwender noch einfacher.

Es lohnt sich also, auch auf einen über ein Jahr alten Beitrag zu antworten ;-)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Alle Zeiten sind GMT + 1 Stunde (MEZ)

Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Seite 1 von 1
if-de :: Forum Foren-Übersicht  >  Inform & Glulx

Neues Thema eröffnen   Neue Antwort erstellen


 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.



Kontakt: Administrator

Powered by phpBB and NoseBleed v1.05