对于非VIRTKEY""不适当的修饰符是什么?错误意味着在风中?

时间:2014-10-06 08:54:56

标签: winapi mingw windres

我正在尝试移植多年前在Borland C ++ 5.0中编写的应用程序,以便能够使用MinGW进行编译。

我解决了大部分问题,但我遇到了一个RC文件的问题:

Windres在以下加速器表中抱怨这些条目:

menu ACCELERATORS
{
    VK_DELETE,     CM_KILL_YOUR_UNIT, VIRTKEY
    ".",            CM_FOLLOWMODE, ASCII
    VK_TAB,        CM_IDLEGATHERSHIP, VIRTKEY
    "s",            CM_STOP, ASCII
    "T",            CM_TRIBUTE, ASCII, CONTROL
    "f",            CM_FLUENTTRAINING, ASCII
    "k",            CM_NEXTUNIT, ASCII
    VK_F10,        CM_FOLLOWSTRONGEST, VIRTKEY, CONTROL
}

(我删除了它没有抱怨的条目。)

错误是:inappropriate modifiers for non-VIRTKEY

我不知道如何解决这个问题。一个结果谷歌出现这个错误的是源代码转储和补丁本身。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我发现了......问题不在于windres抱怨,而是在它们上面一行。

更具体地说:

"F",            CM_FRIENDORFOECOLORS, ASCII, CONTROL
"S",            CM_SAVEGAME, ASCII, CONTROL
"C",            CM_CHANGEPLAYER, ASCII, CONTROL
"L",            CM_LOADGAME, ASCII, CONTROL
"B",            CM_BGM, ASCII, CONTROL
"A",            CM_STATSWND, ASCII, CONTROL
"E",            CM_FXSOUND, ASCII, CONTROL

显然,将修饰符添加到ASCII加速器是无效的。

MSDN也说:

  

表示虚拟键的整数值。虚拟键   可以通过放置大写字母或来指定字母数字键   双引号中的数字(例如,“9”或“C”)。类型   参数必须是VIRTKEY。

所以可能只需将类型更改为VIRTKEY即可解决问题。 (一旦我回到家,我会尝试一下......)