getmousestate函数 打开BGI库

getmousestate function Open BGI library

我目前正在为 C 使用过时的开放式 BGI 库,因为这是我的大学希望我们做的,但我不知道如何使用此功能。

extern void getmousestate(g_mousestate *state);

定义:

void getmousestate(g_mousestate * state)
{
    CHECK_GRAPHCS_INITED
    state->x = sharedStruct->mouseX;
    state->y = sharedStruct->mouseY;
    state->buttons = sharedStruct->mouseButton;
}

g_mousestate定义:

typedef struct mousestate {
    int x, y;
    int buttons;
}g_mousestate;

sharedStruct 定义:

static SHARED_STRUCT * sharedStruct;

SHARED_STRUCT定义:

typedef struct
{
  int mouseX, mouseY;
  int mouseButton;
  int keyCode;
  int keyLetter;
  int visualPage;
} SHARED_STRUCT;

我试图打电话的事情:

g_mousestate *a;
getmousestate(a->x);

但是我不知道要初始化什么...

我以为这个函数可以告诉我鼠标的位置以及按下的按钮等,但我不知道如何正确调用该函数。非常新手,如有帮助将不胜感激。

OK,初学者,我们开始吧。你想做的事:

g_mousestate *a;
getmousestate(a->x);

获取鼠标的x-position。首先请注意,您已将 a 声明为指针,但尚未为其分配内存(它尚未指向任何内容)。所以首先你必须有 g_mousestate 对象的内存:

g_mousestate a;
getmousestate(&a);

现在 a 不再是一个指针,而是一个对象,您通过使用 & 运算符获取 a 的地址,将指针传递给 getmousestate 函数("address-of").

您无需再执行任何操作,因为如果您查看函数的定义,您会看到所有成员都由它填充。