0

这就是代码现在的样子(或者至少是重要的部分。)

这些是我在编译时遇到的(相关)错误。(希望我能把它放在剧透标签里)

g15_plugin_uinput.c:在函数“g15_process_keys”中:g15_plugin_uinput.c:189:3:错误:“g_key”未声明(在此函数中首次使用)

g_key 1 =GKEY_OFFSET+1;^ g15_plugin_uinput.c:189:3:注意:对于出现在 g15_plugin_uinput.c:196:24 中的每个函数,每个未声明的标识符仅报告一次:

警告:逗号表达式的左侧操作数无效 [-Wunused-value] g_key[7]=KEY_LEFTMETA, KEY_F1;

.....(重复)

....(重复结束后)

g15_plugin_uinput.c:208:25:警告:逗号表达式的左侧操作数无效 [-Wunused-value] g_key[18]=KEY_LEFTCTRL, KEY_PAGEDOWN;

g15_plugin_uinput.c:208:3:警告:语句无效 [-Wunused-value] g_key[18]=KEY_LEFTCTRL, KEY_PAGEDOWN;

g15_plugin_uinput.c:292:16:错误:未知类型名称“key_seq”无效 g_key_dn(key_seq 序列)

g15_plugin_uinput.c:298:16:错误:未知类型名称“key_seq”无效 g_key_up(key_seq 序列)

g15_plugin_uinput.c:306:13:警告:函数“g_key_dn”的隐式声明 [-Wimplicit-function-declaration] {g_key_dn(sequences 1 );}

g15_plugin_uinput.c:306:23: 错误: 'sequences' undeclared (首先在这个函数中使用) {g_key_dn(sequences 1 );}

g15_plugin_uinput.c:308:13:警告:函数“g_key_up”的隐式声明 [-Wimplicit-function-declaration] {g_key_up(sequences 1 );}

这是我想要的结果,例如 key nr 15 if mkey_state = 0。(如果这里定义了物理按键,括号中的内容定义了它的实际作用,我正在尝试将它自动化一点你可以说。你可以在 mkey_state 更改的代码中查看下部)

    if((currentkeys & G15_KEY_G15) && !(lastkeys & G15_KEY_G15))
        {keydown(KEY_LEFTMETA);keydown(KEY_PAGEUP);}
    else if(!(currentkeys & G15_KEY_G15) && (lastkeys & G15_KEY_G15))
        {keyup(KEY_LEFTMETA);keydown(KEY_PAGEUP);}

在相同的情况下,但我想要的是键 1 而不是 15

    if((currentkeys & G15_KEY_G1) && !(lastkeys & G15_KEY_G1))
        {keydown(GKEY_OFFSET+1);}
    else if(!(currentkeys & G15_KEY_G1) && (lastkeys & G15_KEY_G1))
        {keyup(GKEY_OFFSET+1);}

我做错了什么,我怎样才能让这段代码更好地工作?

这是代码的更完整版本(怀疑它会有所帮助,它与问题无关,但可能会给你上下文)

该文件是用户空间键盘驱动程序的插件。我已经设法制作了我想要的代码,但为了便于阅读,我正在尝试简化和缩短它,而且我想稍后制作一个外部配置文件(所以我不必每次都重新编译我想更改“G”额外键上的绑定。)

4

1 回答 1

0

g_key1在分配给它之前,您尚未在代码中声明类型或任何g_key1内容。如果您的 g_keys 在分配给它们之前,您需要定义类型。

为了使您的代码正常工作,您最有可能需要编写:

int g_key1 = GKEY_OFFSET+1;
于 2013-04-11T11:28:06.423 回答