Snake und C
-
Huhu,
ich verstehe nicht wie du auf cci kommst.
Der 2. Parameter will einen bool´schen Wert haben und du fütterst ihm mit einer Structure.
typedef struct _CONSOLE_CURSOR_INFO { DWORD dwSize; BOOL bVisible; /* Do you see? */ }CONSOLE_CURSOR_INFO, *PCONSOLE_CURSOR_INFO;
-
Worum es hier aber geht ist aber die Funktion:
BOOL WINAPI SetConsoleCursorInfo( __in HANDLE hConsoleOutput, __in const CONSOLE_CURSOR_INFO *lpConsoleCursorInfo );
Die verlangt wohl ein struct als zweites Argument,oder?
MfG ::john::
-
Hab mich wohl da verschaut.
Die Funktion erwartet einen Pointer als 2. Parameter:
void change_cursor( DWORD size ){ CONSOLE_CURSOR_INFO* cci; /* Here... */ cci.Size = size; SetConsoleCursorInfo( GetStdHandle( STD_OUTPUT_HANDLE ),cci ); }
-
Danke schonmal!
Es lässt sich nun zumindest ohne die Zeilecci.Size = size;
Die verursacht folgenden Fehler:
error: request for meber 'Size' in something not a structure or union
MfG ::john::
-
Huhu,
freut mich.
Versuchs mal mit:
cci.dwSize = size;
-
Sorry, aber das funktioniert leider genauso wenig..
Auch jede Aktion mit 'Visible' schlägt fehl.MfG ::john::
-
Huhu,
ach du Backe. Ich sollte mich langsam schämen für meine Antworten.
Stichwort: struct-pointer.
void change_cursor( DWORD size ){ CONSOLE_CURSOR_INFO* cci; cci->dwSize = size; /* -> */ SetConsoleCursorInfo( GetStdHandle( STD_OUTPUT_HANDLE ),cci ); }
-
LOL?
bitte so:
void change_cursor( DWORD size ){ CONSOLE_CURSOR_INFO cci; cci.dwSize = size; SetConsoleCursorInfo( GetStdHandle( STD_OUTPUT_HANDLE ), &cci ); }
das was Sunny31 hier veranstaltet hat, führt zu einer Speicherzugriffsverletzung,
da in eine nicht-initialisierte Adresse geschrieben wird...
-
Ich danke euch beiden. Es lässt sich nun ohne Probleme ausführen ich melde
mich nochmal, wenn ich weiter bin.
-
Hmm,...
Nagut, wieder was dazu gelernt.
Danke!