Nochmals TYPE

Previous topic - Next topic

HeikoJ

Hallo,

ich habe ein Projekt, welches aus vielen einzelnen Dateien besteht.
Nun habe ich in Datei A eine TYPE-Deklaration. z.B.

GLOBAL Player AS TPlayer

TYPE TPlayer
....
  found[5]
ENDTYPE

Wenn ich jetzt in Datei B darauf zugraifen will, z.B.

nr = Player.found

kommt folgender Fehler :

error: wrong argument type : TYPE ist not declared

Eigentlich sollte doch der Compiler/Linker alle Definitionen finden, egal in welcher Datei
sie stehen, zumal die Variable Player als GLOBAL definiert ist.

Gruß Heiko

Schranz0r

Hab grad mal getestet !

Also an dem was du gepostet hast stimmt alles...

bei mir gehts!

Poste mal mehr Code evtl ist wo anders ein Fehler drin ?!
Groß - kleinschreibung ?
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

Kitty Hello

Oh Mist. Für DIMDATA muss ich wissen, was das für ein Typ ist - genau _hier_.
Darum müsste man vorher nochmal schreiben: GLOBAL Player AS TPlayer. Den kennt er hier nicht, wenn die Deklaration später erfolgt.
Ist das akzeptabel?

Schranz0r

Nochmal, hab ich das jetzt richtig verstanden ?

Man muss doch erst den Type Deklarieren, und dann den Player AS TPlayer machen oder?

Sonnst erkennt er den ja nicht, da er den ja noch nicht abgearbeitet  hat ?!
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

Kitty Hello

Bin gerade auch etwas verwirrt. Ich würde eine Funktion machen: InitMyType: t AS MyType
und die unter das TYPE/ENDTYPE schreiben. Das ist halt leider gerade bei DIMDATA so. Alles andere wird erst nachher geprüft, wenn er alle types kennt.

HeikoJ

Hallo Gernot,

genauso habe ich es dann auch gemacht.

Habe mir eine Init-Funktion geschrieben, auf der ich dann von überall
zugreifen kann.

Danke und Gruß

Heiko