"einfache" frage zu extern
-
Hallo
ich habe folgendes Problem:
in der main habe ich ein
SDL_Surface *screen; stehen // und das global
in einer anderen datei habe ichextern screen nach der include stehen
jetzt muesste er die variable ja kennen und ich könnte diese benutzen
doch
es kommt bei folgender Funtktion
SDL_BlitSurface(texture, NULL, screen, &m_field.rect);
folgender fehler
k:\Visual Studio Net\sdltest\sdlTest\FieldMatrix.cpp(58): error C2664: 'SDL_UpperBlit' : Konvertierung des Parameters 3 von 'int' in 'SDL_Surface *' nicht möglich
Das Problem ist, in der mein kann ich SDL_BlitSurface ganz normal aufrufen und es geht.
Hier ist ja der 3te Parameter nicht in Ordnung. Das screen ist ja anscheinend ein int, wenn ich mir dem "Mauszeiger" draufgehe wird als Tooltipp
SDL_Surface *screen angezeigt. ist also kein int.Ich programmiere unter .NET ein visual c++ konsolenprogramm ( mit SDL )
Da die Frage ja nicht direkt mit SDL zu tun hat, sondern wahrscheinlich allgem. Natur ist( wegen globalen variablen deklarieren ), poste ich es hier rein.
-
achja
warum erscheint eigentlichSDL_UpperBlit
ich habe doch
SDL_BlitSurface benutzt.
UpperBlit find ich in der SDL Doku auch nicht
( ok die Frage gehört aber wirklich ins Spieleforum)
-
Steht hinter der include wirklich nur
extern screen;
??
Das muss nämlich
extern SDL_Surface *screen;
heißen, denn der Compiler kann den Typ ja nicht erraten.
Also, wenn da nur extern screen steht, kann das ja schonmal nicht gehen, weil man bei der Deklaration den Typ angeben muss. Daher kommt wahrscheinlich auch der Konvertierungsfehler, weil der Compiler den Typ als int annimmt (Kein c++ standard, aber der Microsoft-Compiler nimmt das nicht so genau
)
Felix