为什么Windres在GROUPBOX语句中报告语法错误?

时间:2011-01-24 19:56:01

标签: c++ winapi resources

  

可能重复:
  Why does Windres report a syntax error on my GROUPBOX statement?

注意:这是昨天的重新发布。我真的没有得到它的答案,它已经落后于C ++(以及其他)队列。

我正在用C ++实验Win32 API,特别是编写资源文件。现在,我的整个项目工作得很好,菜单和标题以及一切。但是,当我将这个代码添加到.rc文件的模式对话框时:

IDD_ABOUT DIALOGEX DISCARDABLE  0, 0, 239, 66
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "My About Box"
FONT 8, "MS Sans Serif"
BEGIN
    DEFPUSHBUTTON   "&OK",IDOK,174,18,50,14
    PUSHBUTTON      "&Cancel",IDCANCEL,174,35,50,14
    GROUPBOX        "About this program...",IDC_STATIC,7,7,225,52
    CTEXT           "An example program showing how to use Dialog Boxes\r\n\r\nby theForger", IDC_STATIC,16,18,144,33
END

Windres退出时出现以下错误:

windres: resource.rc:40: syntax error

第40行指的是:

GROUPBOX "About this program...",IDC_STATIC,7,7,225,52

根据MSDN

  

GROUPBOX语句只能在DIALOGEX语句中使用,它定义控件窗口的文本,标识符,尺寸和属性。

     

GROUPBOX文字,id,x,y,width,height [,style [,extended-style]]

他们的例子:

GROUPBOX "Options", 101, 10, 10, 100, 100

我做错了什么?

1 个答案:

答案 0 :(得分:0)

似乎有两种可能性:

  1. Windres有一个错误。
  2. Windres有不同的规格。
  3. 基于(至少看起来像)windres spec,您的代码是错误的 - 至少如图所示,您应该在GROUPBOX行的末尾加上逗号(可选地跟随由params)。不过,我的猜测是,如果你还包括params,那么逗号实际上只是存在。

    当然,他们给出的语法可能真实地反映了windres接受的内容,即使这不是真正的意图。 尝试添加一个逗号应该很容易,看看它是否接受了 - 但坦率地说,我怀疑它会有所帮助。

    因此,上面的选项2显然是正确的,但选项1也完全有可能。