Domanda

Mi dà una violazione di accesso sulla linea getmaxyx (seconda linea nella funzione principale) e anche mi dà queste due avvertenze:

LINK : warning LNK4049: locally defined symbol "_stdscr" imported
LINK : warning LNK4049: locally defined symbol "_SP" imported

Sì, è lo stesso codice in un'altra domanda ho chiesto, è solo che sto facendo più chiaro. E sì, ho scritto programmi con pdcurses prima senza problemi.

#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;
}
È stato utile?

Soluzione

E 'stato molto tempo da quando ho usato maledizioni, ma direi è necessario chiamare initscr() prima qualsiasi altro maledizioni chiamano come getmaxyx.

Inoltre, è probabilmente sono anche manca qualche controllo degli errori sul ritorno di initscr e necessità di utilizzare i valori di ritorno correttamente (forse bisogna passarlo a metodo di altre maledizioni?).

Altri suggerimenti

È necessario chiamare initscr prima getmaxyx

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top