Was ist falsch mit meinem Code? (Pdcurses / getmaxyx)
-
27-09-2019 - |
Frage
Es gibt mir eine Zugriffsverletzung auf der getmaxyx Linie (zweite Zeile in der Hauptfunktion) und gibt mir auch diese beiden Verwarnungen:
LINK : warning LNK4049: locally defined symbol "_stdscr" imported
LINK : warning LNK4049: locally defined symbol "_SP" imported
Ja, es ist der gleiche Code wie in einer anderen Frage, die ich fragte, es ist nur, dass ich mache es klarer. Und ja, ich habe geschrieben Programme mit pdcurses vor ohne Probleme.
#include <time.h>
#include <curses.h>
#include "Ball.h"
#include "Paddle.h"
#include "config.h"
int main(int argc, char *argv[])
{
int maxY, maxX;
getmaxyx(stdscr, maxY, maxX);
Paddle *paddleLeft = new Paddle(0, KEY_L_UP, KEY_L_DOWN);
Paddle *paddleRight = new Paddle(maxX, KEY_R_UP, KEY_R_DOWN);
Ball *ball = new Ball(paddleLeft, paddleRight);
int key = 0;
initscr();
cbreak();
noecho();
curs_set(0);
while (key != KEY_QUIT)
{
key = getch();
paddleLeft->OnKeyPress(key);
paddleRight->OnKeyPress(key);
}
endwin();
return 0;
}
Lösung
Es ist lange her, seit ich Flüche benutzt haben, aber ich würde vermuten, Sie Anruf initscr()
brauchen vor andere Flüche wie getmaxyx
nennen.
Auch Sie wahrscheinlich sind auch einige Fehler fehlt über die Rückgabe von initscr und Notwendigkeit überprüft richtig die Rückgabewerte zu verwenden (vielleicht haben Sie es weitergeben an andere Flüche Methode?).
Andere Tipps
Sie müssen initscr
vor getmaxyx
anrufen