Angeblich fehlendes ';'- kann aber keinen Fehler finden
-
Innerhalb eines existierenden Projekts habe ich einen Header eingefügt (brav via Projket-> Klasse einfügen), welcher im Folgenden so aussieht:
class COwnLight { private: D3DLIGHT9 dxlight; public: COwnLight(float colorD[3], float colorS[3], float direction[2]); //direktional COwnLight(float colorD[3], float colorS[3], float pos[2], float range, float att[2]);//Punkt COwnLight(float colorD[3], float colorS[3], float pos[2], float direction[2], float range, float att[2], float theta, float phi);//Spot //~COwnLight(void); };
Jetzt wollte ich das Projekt debuggen, und VS (verwende .NET 2003) nervt mich mit dem Fehler, dass angeblich vor dxlight ein ';' fehlen würde.
D3DLIGHT9 ist eine STrukturvariable aus DX9, beim Schreiben meiner Library zu den Methodenaufrufen hat die Autotextfunktion beim Tippen von dxlight. sofort reagiert und mir die Variablen aus der D3DLIGHT9 Struktur angeboten (normalerweise macht VS das ja nicht, wenn im Programm was verkehrt läuft), auch wenn ich mit der Maus drüber gehe, wird mir in dem kleinen PopUp sofort alles wie erwartet angetzeigt- nur der Compiler motzt...ich kann aber beim besten Willen nicht sehen warum.
-
Tja, dann ist der Typ halt doch nciht bekannt. Header eingebunden?
-
ja- an sich schon. Mich wundert ja auch, dass VS den Typen eigentlich kennt- sonst würde die Autotextfunktion ja auch nicht den Inhalt der Strukturvariablen D3DLIGHT9 kennen, die ich in der Bibliothek anspreche, also wenn ich jetzt
dxlight eingebe, dann den . mache, kommt das Auswahlkästechen, das den Strukturinhalt zeigt.
-
Ja und?
-
Verzweifler schrieb:
ja- an sich schon. Mich wundert ja auch, dass VS den Typen eigentlich kennt- sonst würde die Autotextfunktion ja auch nicht den Inhalt der Strukturvariablen D3DLIGHT9 kennen, die ich in der Bibliothek anspreche, also wenn ich jetzt
dxlight eingebe, dann den . mache, kommt das Auswahlkästechen, das den Strukturinhalt zeigt.
ob vs den typ kennt sagt an sich nix aus
die frage is ob dein code so aussieht:#include <d3d9types.h> class COwnLight { private: D3DLIGHT9 dxlight; public: COwnLight(float colorD[3], float colorS[3], float direction[2]); //direktional COwnLight(float colorD[3], float colorS[3], float pos[2], float range, float att[2]);//Punkt COwnLight(float colorD[3], float colorS[3], float pos[2], float direction[2], float range, float att[2], float theta, float phi);//Spot //~COwnLight(void); };
-
Okay....man soll so spät abends nicht mehr programmieren.
statt
d3d[b]9[/b]types.h
hatte ich
d3dtypes.h
geschrieben. 9 vergessen...
-
Allerdings wird es langsam wirklich mysteriös:
Nachdem mit dem o.g. Header alle geklärt zu sein scheint, kommen ähnliche Fehlermeldungen (Fehlendes ; usw.) hoch, beziehen sich aber auf eben diese d3d9types.h - ähmm...den habe ich aber nie verändert und eigentlich sollte der doch völlig okay sein? Langsam werde ich ein wenig ratlos.
-
so sollte es gehn:
#include <d3d9.h> class COwnLight { private: D3DLIGHT9 dxlight; public: COwnLight(float colorD[3], float colorS[3], float direction[2]); //direktional COwnLight(float colorD[3], float colorS[3], float pos[2], float range, float att[2]);//Punkt COwnLight(float colorD[3], float colorS[3], float pos[2], float direction[2], float range, float att[2], float theta, float phi);//Spot //~COwnLight(void); };
-
ja, nun klappt es- danke.