O que há de errado com meu código? (PDCurses/getMaxyx)
-
27-09-2019 - |
Pergunta
Isso me dá uma violação de acesso na linha GetMaxyx (segunda linha na função principal) e também me dá esses dois avisos:
LINK : warning LNK4049: locally defined symbol "_stdscr" imported
LINK : warning LNK4049: locally defined symbol "_SP" imported
Sim, é o mesmo código de outra pergunta que fiz, é que estou deixando mais claro. E sim, escrevi programas com pdcurses antes sem problemas.
#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;
}
Solução
Faz muito tempo desde que usei maldições, mas acho que você precisa ligar initscr()
antes da Quaisquer outras maldições chamam como getmaxyx
.
Você também provavelmente Também estão perdendo algum erro de verificação de erro no retorno do INITSCR e precisa usar os valores de retorno corretamente (talvez você precise transmiti -lo a outros métodos de maldições?).
Outras dicas
Você precisa ligar initscr
antes da getmaxyx
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow