我目前正在为C语言使用过时的开放BGI库,因为这是我的uni希望我们做的事情,但是我不知道如何使用这个函数。
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);但我不知道该怎么初始化...
我假设这个函数可以告诉我鼠标在什么位置,按下了什么按钮等,但我不知道如何正确地调用这个函数。我是这里的初学者,任何帮助都将不胜感激。
发布于 2018-02-28 20:03:46
好了,初学者,我们开始吧。您想要做的是:
g_mousestate *a;
getmousestate(a->x);来获取鼠标的x位置。首先请注意,您已经将a声明为指针,但是没有为它分配内存(它还没有指向任何内存)。因此,首先必须为g_mousestate对象预留内存:
g_mousestate a;
getmousestate(&a);现在,a不再是一个指针,而是一个对象,您可以通过使用&操作符(" address - of ")获取a的地址来传递一个指向getmousestate函数的指针。
您不需要做更多的工作,因为如果您查看函数的定义,您会看到所有成员都由它填充。
https://stackoverflow.com/questions/49027801
复制相似问题