如何使用c中最少的库来跟踪鼠标输入

如何使用c中最少的库来跟踪鼠标输入,c,input,mouse,C,Input,Mouse,我不确定在哪里可以找到这些信息,但我想知道如何使用c中最少的非标准库来获取鼠标输入(或任何hid输入)。基本上,c中的鼠标(和其他输入)输入是否有stdio等价物?或者是否有一个在多个平台上最小且交叉兼容的库。只要能够将鼠标坐标打印到终端窗口就足够了。这里是一个0非标准库方法。在存在/dev/input/event#的任何位置运行 #包括 #包括 int main(int argc,字符**argv) { int-fd; 如果((fd=open(“/dev/input/mices”,O_RDON

我不确定在哪里可以找到这些信息,但我想知道如何使用c中最少的非标准库来获取鼠标输入(或任何hid输入)。基本上,c中的鼠标(和其他输入)输入是否有stdio等价物?或者是否有一个在多个平台上最小且交叉兼容的库。只要能够将鼠标坐标打印到终端窗口就足够了。

这里是一个0非标准库方法。在存在/dev/input/event#的任何位置运行

#包括
#包括
int main(int argc,字符**argv)
{
int-fd;
如果((fd=open(“/dev/input/mices”,O_RDONLY))<0){
perror(“evdev开放”);
出口(1);
}
结构输入\事件ev;
而(1){
读取(fd、ev和sizeof(结构输入事件));
printf(“值%d,类型%d,代码%d\n”,版本值,版本类型,版本代码);
}
返回0;
}
在Windows上,您需要使用Win32 API做一些可怕的事情,并将其挂接到消息系统中


简而言之,不,C语言中没有这方面的标准

我相信会成功。

取决于平台和操作系统。如果要直接“跟踪”鼠标(或HID)事件,可能需要编写驱动程序或查找驱动程序。驱动程序将监视端口并侦听鼠标数据(消息)

在事件驱动系统上,您必须订阅鼠标事件消息。一些操作系统将向每个任务(如Windows)广播消息,而另一些操作系统将只向订阅者发送事件


这是一个过于笼统的问题,无法得到具体的答案。

这实际上是在为我捕捉键盘信号:)@klez:我认为没有真正的跨平台方法可以做到这一点。谢谢,这是一个笼统的问题,因为我刚刚开始输入编程,不知道从哪里开始!更具体地说,我希望尽可能低的驱动程序,而不必写一个。我对在windows和linux上编程tabletPC输入很感兴趣,但我到处都在寻找一种跨平台的方法来实现它,但我什么也没想到。因此,我想写一个(如果不存在的话)。我希望它是低级别的,这样它就不那么依赖于特定于操作系统的库。如果你能回答这个问题,或者指引我正确的方向,让我自己去发现,那将是令人惊奇的@时间跨平台游戏库已经以最高精度跟踪鼠标输入很长时间了。。。有些甚至可以访问原始的鼠标输入。如果你不想使用它,至少它是一个寻找解决方案的好地方。GLUT和SDL是开始寻找的合适地方,它们都是开源的。祝你好运
#include <linux/input.h>
#include <fcntl.h>    

int main(int argc, char **argv)
{
int fd;
if ((fd = open("/dev/input/mice", O_RDONLY)) < 0) {
    perror("evdev open");
    exit(1);
}

struct input_event ev;

while(1) {
    read(fd, &ev, sizeof(struct input_event));
    printf("value %d, type %d, code %d\n",ev.value,ev.type,ev.code);
}

return 0;
}