modul erstellen
Übersicht

FredFeuersteinBetreff: modul erstellen |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hallo,
ich möchte gerne ein modul erstellen, habe aber jetzt folgendes problem: in meiner "hauptdatei" steht Code: [AUSKLAPPEN] Module [modulname] ... Import "[dateiname1].bmx" Import "[dateiname2].bmx" ... mein problem ist nun das ich in der datei [dateiname1].bmx sachen aus der datei [dateiname2].bmx benötige und umgekehrt. deswegen habe ich in der datei [dateiname2].bmx stehen Code: [AUSKLAPPEN] Import "[dateiname1].bmx" und in der datei [dateiname1].bmx stehen Code: [AUSKLAPPEN] Import "[dateiname2].bmx" jetzt tut der compiler aber leider meckern und sagt mir das er die datei ".bmx/[dateiname1].bmx.[...]" nicht öffnen könne. gut, verstehe ja sogar das er diese nicht öffnen kann, weil sie ja eben noch nicht existiert. die frage ist halt jetzt, wie kann ich das ganze nun lösen? komme ich eventuell nicht drum herum alle sachen in eine datei zu kopieren, oder gibt es so was wie einen "header" den ich erstellen und dann includieren bzw. importieren kann, oder welche möglichkeiten habe ich sonst? im voraus schon mal danke für eure mühen |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ersetz die 2 import mit include
wenn sie dinge von einander benötigen müssen sie in der gleichen BMX sein beim compilieren, was mittels Include erreicht werden kann. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
FredFeuerstein |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ok, erst mal danke.
habe deinen vorschlag so befolgt. danach hat aber mein "lieber" compiler gemeint, weil ich noch weitere Imports in den dateien stehen habe, Import müßte am anfang der datei stehen. gut habe ich mir gedacht, ersetzt du eben diese Imports auch noch durch Includes, hat so weit auch geklappt. Nun meint das dumme ding aber ich hätte jetzt einen doppelten identifier, hmmm. jetzt bin ich zwar etwas weiter, funktionieren tut es aber leider immer noch nicht ![]() hättest nicht eventuell noch eine gute idee für mich ![]() |
||
FredFeuerstein |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
dann hätte ich auch direkt noch eine frage ![]() benötige in der einen datei TList, deshalb habe ich dort auch Code: [AUSKLAPPEN] Import BRL.LinkedList gemacht. aber aus den oben erwähnten gründen habe ich dann das Import auch durch Include ersetzen wollen, wurde aber dann darauf hingewiesen das der compiler einen String erwartet aber einen Identifier bekommt. gut also dachte ich mir machst du anführungszeichen drum herum also Code: [AUSKLAPPEN] Include "BRL.LinkedList" hat leider auch nicht ganz funktioniert, also habe ich noch ein .bmx dran gehängt. jetzt sagt er mir aber das er die datei nicht finden kann. er kann sie auch nicht finden, weil das verzeichnis das er mir anzeigt, in dem existiert diese datei auch nicht, er sucht halt in meinem modul verzeichnis. wie erkläre ich ihm nun das er nicht dort suchen soll sondern in "[...]/mod/brl.mod/[...]"? suche praktisch so etwas wie bei c++: include <[dateiname]> um ihm halt zu erzählen er soll im "standard" pfad suchen. |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das Import und Include hat wenig mit C++ zu tun, es ist viel mehr verwandt mit Javas Packages.
Für das TList Problem: Module musst du immer importieren. Da diese alles selbst importieren was sie benötigen gibts da keinen Grund für ein Include. Da eine TList nicht von deinen Daten abhängen kann wüsste ich auch nicht warum sie included werden sollte. Das macht nur da sinn, wo verschiedene Klassen zusammen ein Package (a la Java) also ein "geschlossenes Packet" bilden das von einander alles wissen muss. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
FredFeuerstein |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
das hab ich mir schon so halb gedacht das ich ich ein import machen muß.
leider sagt er mir dann, wie schon oben erwähnt, das der Import eintrag der erste eintrag in der datei sein muß, was aber anscheinend nicht möglich ist, weil ich in den beiden dateien ja scheinbar ein Include von der jeweils anderen machen muß. hmm, schon alles seltsam genug, aber egal! deswegen kann ich nun leider kein Import von TList mehr machen, zumindest weiß ich nicht wie bzw. wo und desahlb sagt mir der compiler: "Compile Error: Identifier 'TList' not found", ganz toll. und selbst wenn ich das problem gelöst bekomme habe ich immer noch das problem mit den doppelten identifiers vor mir, weil ich in beiden dateien das gleiche includieren tue und dann scheinbar die klassen doppelt includiert werden, oh boah ey. gibt es vielleicht wenigstens so etwas wie precompiler anweisungen das ich das doppelte includieren unterbinden kann? irgendwie drehe ich mich im kreis und komme einfach nicht weiter ![]() hiiiilllllffffffffffeeeeeeeeeeeeee, biiiiiiiiitttttttttteeeeeeeee, das muß doch alles irgendwie gehn, oder? |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Import müssen immer ganz oben sein.
Das heisst ganz oben in der Datei wo sie zusammen kommen! Da du mit Include nichts anderes machst als den Source einer anderen Datei reinkopieren heisst das im Klartext dass die Imports alle in der Datei sein müssen die die anderen Dateien included. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
FredFeuerstein |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@Dreamora
oh man wie geil, es geht endlich ![]() habe jetzt in der hauptdatei von dem modul, wo ich auch Code: [AUSKLAPPEN] Module [modulname] sage, die Imports auf Includes geändert und aus allen anderen dateien alles entfernt was mit Include und Import zu tun hat und siehe da, es geht tatsächlich ![]() vielen dank noch mal und sorry das ich mich so dämlich angestellt habe, ab und an stehe ich einfach auf der leitung ![]() |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das ist kein Problem.
Übrigens: was auch immer du mit BM programmierst, sorg immer dafür das du Strict / SuperStrict benutzt. zum einen wegen Optimierungen die es sonst net gibt und weil du sonst keinen Scope support hast für local. Und natürlich weil sie dir sagen wenn du versuchst unmögliche zuweisungen zu machen ![]() |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group