0

我正在尝试移植几年前在 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

我不知道该怎么做才能解决这个问题。Google 针对此错误得出的一个结果是 windres 本身中的源代码转储和补丁。

有任何想法吗?

4

1 回答 1

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 即可解决问题。(我回家后试试看……)

于 2014-10-06T10:09:59.427 回答