سؤال

إنه يعطيني انتهاكًا للوصول على خط GetMaxyx (السطر الثاني في الوظيفة الرئيسية) ويعطيني أيضًا هاتين التحذيرين:

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

نعم ، إنه نفس الرمز كما هو الحال في سؤال آخر طرحته ، إنه مجرد توضيح ذلك. ونعم ، لقد كتبت برامج مع PDCurses من قبل دون أي مشاكل.

#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;
}
هل كانت مفيدة؟

المحلول

لقد مر وقت طويل منذ أن استخدمت اللعنات ، لكنني أعتقد أنك بحاجة إلى الاتصال initscr() قبل أي دعوة أخرى مثل getmaxyx.

و أنت أيضا من المحتمل هل تفتقد أيضًا بعض الأخطاء في إعادة إرجاع Initscr وتحتاج إلى استخدام قيم الإرجاع بشكل صحيح (ربما يتعين عليك نقلها إلى طريقة لعنات أخرى؟).

نصائح أخرى

تحتاج إلى الاتصال initscr قبل getmaxyx

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top