Compiler findet funktion nicht

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Firstdeathmaker

Betreff: Compiler findet funktion nicht

BeitragSa, Apr 19, 2008 17:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,
ich habe einen sehr seltsamen Fehler. In einer meiner Include Dateien habe ich eine Funktion:
Code: [AUSKLAPPEN]

Function TShipInfo_Get.TShipInfo(id$)
   For si.TShipInfo = Each TShipInfo
      If si.id = id Return si
   Next
   ;If this ship Info is not available, try to load it:
   Return TShipInfo_Load(id)
End Function


und in einer anderen Include Datei rufe ich diese Funktion dann auf:
Code: [AUSKLAPPEN]
Local info.TShipInfo = TShipInfo_Get(shiptype)


Nur gibt mir der debugger folgendes aus
Zitat:
Function 'tshipinfo_get' not found



Folgende Sachen habe ich schon ausprobiert:

    Funktionsnamen direkt von der Definition kopieren (um Schreibfehler zu vermeiden -> Der Name ist also richtig

    Funktionsaufruf direkt ins Hauptprogramm an den Anfang geschrieben -> Immer noch der gleiche Fehler

    Ich habe überprüft ob die Dateien auch alle wirklich eingebunden werden.

    Ich habe mal eine andere, nicht so bedeutende Funktion gelöscht um zu schauen, ob ich vielleicht insgesamt zu viele Funktionen definiert habe. (Ist ein ziemlich umfangreiches Programm) Er findet sie aber immer nicht nicht.

    Ich habe die Funktion mal umbenannt in 'A'. Findet sie aber immer noch nicht.

    Und wenn ich eine andere, ähnliche Funktion (=TShipInfo_Load(id$) ) aufrufe welche direkt daneben definiert ist, funktioniert es damit ohne Probleme. Aber eben nicht mit TShipInfo_Get(id$)

    Wenn ich die Funktion in die gleiche Datei kopiere von der ich den Aufruf starte, dann funktioniert es.


Hat irgendjemand ne Idee woran es liegen könnte?
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon
Gewinner des BCC #57 User posted image

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragSa, Apr 19, 2008 18:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Dein Problem kann ich so nicht nachvollziehen aber das hier
Code: [AUSKLAPPEN]
If si.id = id Return si

das ist irgendwie nicht so verständlich, das geht doch nur mit Handle und Objekt oder halt si\id
zumal ID ein String ist.
[BB2D | BB3D | BB+]

D2006

Administrator

BeitragSa, Apr 19, 2008 18:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich bin mir zwar sicher, dass du daran gedacht hast, aber zur Sicherheit:

Wenn du eine Hauptdatei A hast, welche die Dateien B und C inkludiert. Und du benutzt in B etwas aus C, dann kannst du nur noch A kompilieren. B nicht mehr. Aber das ist ja eigentlich logisch und daher sicher nicht Fehlerquelle.
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard
Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium
Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2

Firstdeathmaker

BeitragSa, Apr 19, 2008 18:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Okay, wusste das es ein sehr dummer Fehler sein musste:

Habe vorher einen ganzen Batzen Include Dateien in einen Unterordner kopiert. Nur diese eine Datei (TShip.bb) hatte ich nicht aus dem alten Verzeichnis gelöscht.

Die ganzen Verweise im Hauptprogramm habe ich auf das neue Verzeichnis umgestellt, aber immer die alte Datei bearbeitet. Dadurch wurden Änderungen dort garnicht wirksam. Und deshalb kannte der die Funktion auch nicht....


Danke für eure Hilfen Wink

@ Rallyman: Natürlich heisst es If si\id = id Return si Smile
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon
Gewinner des BCC #57 User posted image

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group