IF-Forum

» IF-Forum - Autorencafé - Schreiben! - Einbinden einer eigenen Lib
AntwortenNeues ThemaNeue Umfrage

Einbinden einer eigenen Lib

Geschrieben um 11:19 am 21.05.2003 | Zitat | Editieren | Löschen
Marc
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...

Geschrieben um 23:50 am 21.05.2003 | Zitat | Editieren | Löschen
ChrisW
Mitglied
Dr Gumby
Beiträge: 275

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?

Geschrieben um 23:01 am 22.06.2004 | Zitat | Editieren | Löschen
Kris
Mitglied
Dr Gumby
Beiträge: 181

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

Geschrieben um 00:30 am 23.06.2004 | Zitat | Editieren | Löschen
ChrisW
Mitglied
Dr Gumby
Beiträge: 275

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.

Geschrieben um 09:45 am 23.06.2004 | Zitat | Editieren | Löschen
Kris
Mitglied
Dr Gumby
Beiträge: 181

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 ;-)

AntwortenNeues ThemaNeue Umfrage
Powered by Spam Board SVN © 2007 - 2021
Impressum / Datenschutz