首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >getmousestate函数打开BGI库

getmousestate函数打开BGI库
EN

Stack Overflow用户
提问于 2018-02-28 18:52:20
回答 1查看 60关注 0票数 1

我目前正在为C语言使用过时的开放BGI库,因为这是我的uni希望我们做的事情,但是我不知道如何使用这个函数。

extern void getmousestate(g_mousestate *state);

定义:

代码语言:javascript
复制
void getmousestate(g_mousestate * state)
{
    CHECK_GRAPHCS_INITED
    state->x = sharedStruct->mouseX;
    state->y = sharedStruct->mouseY;
    state->buttons = sharedStruct->mouseButton;
}

g_mousestate定义:

代码语言:javascript
复制
typedef struct mousestate {
    int x, y;
    int buttons;
}g_mousestate;

sharedStruct定义:

static SHARED_STRUCT * sharedStruct;

SHARED_STRUCT定义:

代码语言:javascript
复制
typedef struct
{
  int mouseX, mouseY;
  int mouseButton;
  int keyCode;
  int keyLetter;
  int visualPage;
} SHARED_STRUCT;

这就是我想要做的事情:

代码语言:javascript
复制
g_mousestate *a;
getmousestate(a->x);

但我不知道该怎么初始化...

我假设这个函数可以告诉我鼠标在什么位置,按下了什么按钮等,但我不知道如何正确地调用这个函数。我是这里的初学者,任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-28 20:03:46

好了,初学者,我们开始吧。您想要做的是:

代码语言:javascript
复制
g_mousestate *a;
getmousestate(a->x);

来获取鼠标的x位置。首先请注意,您已经将a声明为指针,但是没有为它分配内存(它还没有指向任何内存)。因此,首先必须为g_mousestate对象预留内存:

代码语言:javascript
复制
g_mousestate a;
getmousestate(&a);

现在,a不再是一个指针,而是一个对象,您可以通过使用&操作符(" address - of ")获取a的地址来传递一个指向getmousestate函数的指针。

您不需要做更多的工作,因为如果您查看函数的定义,您会看到所有成员都由它填充。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49027801

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档