0

MinGW でコンパイルできるように、Borland C++ 5.0 で数年前に作成されたアプリケーションを移植しようとしています。

ほとんどの問題を解決しましたが、1 つの 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 がこのエラーに対して思いついた結果の 1 つは、windres 自体のソース コード ダンプとパッチです。

何か案は?

4

1 に答える 1

0

私はそれを見つけました...問題はwindresが文句を言う行ではなく、それらの1行上にあります。

すなわち:

"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 に答える