加速器资源表出现错误

Accelerator resource table giving errors

本文关键字:错误 资源 加速器      更新时间:2023-10-16

以下资源定义有什么问题?

ACCELERATOR_RESOURCE_ID ACCELERATORS
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
{
    VK_C, IDA_COPY, NOINVERT, CONTROL, VIRTKEY
    VK_V, IDA_PASTE, NOINVERT, CONTROL, VIRTKEY
    VK_A, IDA_SELECTALL, NOINVERT, CONTROL, VIRTKEY 
}

每次编译时,它都会在VK_C、IDA_COPY、NOINVERT、CONTROL、VIRTKEY行给我语法错误。我也无法准确指出问题所在。

普通字母或数字的虚拟密钥标识符没有在Windows标头中定义——来自WinUser.h:

/*
 * VK_0 - VK_9 are the same as ASCII '0' - '9' (0x30 - 0x39)
 * 0x40 : unassigned
 * VK_A - VK_Z are the same as ASCII 'A' - 'Z' (0x41 - 0x5A)
 */

因此,值VK_CVK_V等是问题所在。

资源编译器显然不支持像'C''V'这样的字符常量,而且这种做法似乎使用(十六进制)数字ASCII值:

0x43, IDA_COPY, NOINVERT, CONTROL, VIRTKEY
0x56, IDA_PASTE, NOINVERT, CONTROL, VIRTKEY
0x41, IDA_SELECTALL, NOINVERT, CONTROL, VIRTKEY