Синтаксическая ошибка ресурса C ++ - PullRequest
0 голосов
/ 21 сентября 2010

У меня есть ресурс:

IDC_MYMENU MENU
BEGIN
    POPUP "&File"
    BEGIN
        MENUITEM "E&xit"
    END
    POPUP "&Stuff"
    BEGIN
        MENUITEM "&Go"
    END
END

В первом END написано, что есть синтаксическая ошибка, я не понимаю, почему. Кто-нибудь знает? (

Ответы [ 2 ]

2 голосов
/ 21 сентября 2010

Проблема в том, что вы не установили идентификатор для MENUITEM. Компилятор ресурсов ожидает дополнительный параметр после строки. Смотрите документацию здесь: http://msdn.microsoft.com/en-us/library/aa381025%28VS.85%29.aspx

1 голос
/ 21 сентября 2010

Вам нужен идентификатор, связанный с пунктом меню, например:

#include "resources.h"
#include "windows.h"

IDC_MYMENU MENU
BEGIN
    POPUP "&File"
    BEGIN
        MENUITEM "E&xit", ID_EXIT
    END
    POPUP "&Stuff"
    BEGIN
        MENUITEM "&Go", ID_GO
    END
END

где resources.h будет выглядеть примерно так:

#define ID_GO 101

[На востоке, если память служит, ID_EXIT обычно предопределяется Windows.h, поэтому вам не нужно его определять.]

Идентификатор - это значение, которое ваша программа получит в сообщении WM_COMMAND при выборе этого пункта меню. Значения (практически всегда) находятся в отдельном заголовке, который вы можете включить как в файл RC, так и в код, чтобы исключить любые несоответствия.

...