Identifier * not found?

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

M0rgenstern

Betreff: Identifier * not found?

BeitragSa, Jul 14, 2012 21:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Leute,

Ich verzweifel hier gerade vor dem Rechner.
Ich habe eine Singleton Klasse geschrieben und in ein Modul verpackt. Jetzt wollte ich das Modul nutzen.

Die Klasse sieht (verkürzt) so aus:
BlitzMax: [AUSKLAPPEN]

Type TErrorLogger Extends TObject
Global _telErrorLogger:TErrorLogger

Function Instance:TErrorLogger()
'If the instance is null, then first call the constructor.
If(_telErrorLogger = Null) Then
_telErrorLogger = New TErrorLogger
EndIf

Return _telErrorLogger
End Function
End Type


Ich versuche die Funktion folgendermaßen zu nutzen:
BlitzMax: [AUSKLAPPEN]
Local eInst:TErrorLogger = TErrorLogger.Instance()

Zitat:
Identifier 'Instance' not found


Ich habe jetzt einfach mal zum Vergleich folgendes gemacht:
BlitzMax: [AUSKLAPPEN]
Type TTest
Global _ttInstance:TTest

Function Instance:TTest()
If(_ttInstance = Null) Then
_ttInstance = New TTest
EndIf

Return _ttInstance
End Function
End Type

Local inst:TTest = TTest.Instance()

Das funktioniert ohne Probleme. Es ist aber auf nicht als Modul verpackt.

Was mich auch wundert: Wenn ich "TErrorLogger." eingebe, dann zeigt er mir ja Funktionen und so an. Und "Instance" ist da ein Vorschlag. Ich habe auch schon den Namen kopiert, um sicherzugehen, dass ich keinen Tippfehler habe.
Hilf alles nichts.
Kann mir bitte jemand weiterhelfen?
Liegt das daran, dass es als Modul gepackt ist?

Lb, M0rgenstern
Dabei bekomme ich ständig folgenden Fehler:

BladeRunner

Moderator

BeitragSa, Jul 14, 2012 21:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Versuch mal im Modulquelltext schon eine Instanz zu erstellen, direkt nach der Deklaration des Types. So mach ich das wenn ich Module als singletons auslege.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

M0rgenstern

BeitragSo, Jul 15, 2012 9:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Also, ich weiß echt nicht, was das Problem ist.
Habe es jetzt so gemacht:

(Im Modul)
BlitzMax: [AUSKLAPPEN]
Type TErrorLogger Extends TObject

'Hier der Code....

End Type

Global ErrorLogger:TErrorLogger = New TErrorLogger


Und darauf zugreifen möchte ich folgendermaßen:
(Außerhalb des Moduls)
BlitzMax: [AUSKLAPPEN]
ErrorLogger.ChangeCurrentErrorLevel(1)


Und dann kommt immernoch (im Prinzip) die gleiche:
Zitat:
Identifier 'ErrorLogger' not found


EDIT: Zusatz:
Ich habe mal das komplette modul umbenannt.
Mir ist nämlich aufgefallen, dass er in den module infos immer was großgeschrieben hat.
Nämlich:
BlitzMax: [AUSKLAPPEN]
Module siliziumbrain.ErrorLogger
Dabei sollte das "ErrorLogger" ein "errorlogger" sein.

Habe jetzt alles in "logger" umbenannt. Also die modulinfo, die .bmx Datei und auch der .mod Ordner.
Habe dann das Modul neu gebaut und auch makemods benutzt.
Aber jetzt bekomme ich, wenn ich das Modul einbinden will die Meldung:
Zitat:
Can't find interface for module 'siliziumbrain.logger'


Edit2:
Okay. Hat sich alles erledigt. Das Ding läuft mit Threads. Dann sollte man in der IDE auch Threaded Build einschalten.

Sorry und Vielen Dank.

Lg, M0rgenstern

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group