This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Hi, In the cegcc project, we're using binutils and a number of other tools to provide a cross-development environment for ARM processor running CE. The development environment is hosted on Linux or Cygwin. We have windres thanks to binutils, I have a couple of questions regarding it. I've already asked them on the cegcc-devel mailing list but I expect more answers from the binutils list. Windres doesn't provide very sensible error messages, this bothers me so I've been looking into it. I have two questions. 1. From the documentation I see on MSDN, the snippet below doesn't appear to be valid. The LTEXT line ends with a comma, which indicates that a style should follow. But it doesn't. Look at http://msdn2.microsoft.com/en-us/library/aa381021.aspx for a description, the syntax is : LTEXT text, id, x, y, width, height [[, style [[, extended-style]]]] Effectively, the arm-wince-cegcc-windres fails to compile this line, but it accepts it when the comma at the end of the line is removed. Question : this is based on one of the examples in the Boling book, which is from Microsoft Press. Is the example wrong ? SMSTalk_PPC DIALOG discardable 25, 5, 120, 98 STYLE WS_OVERLAPPED | WS_VISIBLE | WS_SYSMENU | DS_MODALFRAME CAPTION "SMS Talk" FONT 8, "System" BEGIN LTEXT "Received Messages", -1, 4, 4, 128, 10, LISTBOX IDD_MSGLIST, 4, 14, 128, 48, WS_TABSTOP END 2. Windres calls the C preprocessor to deal with macros. This is a sensible thing to do because they appear to follow the C syntax. However, this makes it hard to produce sensible error messages. Consider an input such as this : ID_MENU_SP RCDATA MOVEABLE PURE BEGIN ID_MENU_SP, 2, I_IMAGENONE, IDOK, TBSTATE_ENABLED, TBSTYLE_BUTTON | TBSTYLE_AUTOSIZE, IDS_EXIT, 0, NOMENU, I_IMAGENONE, IDPOP, TBSTATE_ENABLED, TBSTYLE_DROPDOWN | TBSTYLE_AUTOSIZE, IDS_MENU, 0, 0, END The C preprocessor turns it into this : 100 RCDATA MOVEABLE PURE BEGIN 100, 2, (-2), 1, 4, 0 | 16, 401, 0, NOMENU, (-2), 208, 4, 8 | 16, 402, 0, 0, END Error messages will describe stuff in the latter format which is unknown and therefore incomprehensible to the programmer. Not good. However, the syntax allowed appears to be a manageable subset of the C syntax. Would it be a silly idea to implement that limited subset in windres so it becomes independent of the C preprocessor and can write better error messages ? Does anyone have a better idea? Thanks, Danny -------- Forwarded Message -------- > From: Danny Backx <danny.backx@scarlet.be> > To: CeGCC Development List <cegcc-devel@lists.sourceforge.net> > Subject: [Cegcc-devel] Windres questions > Date: Wed, 07 Mar 2007 00:32:23 +0100 > > Windres doesn't provide very sensible error messages, this bothers me so > I've been looking into it. > > I have two questions. > > 1. From the documentation I see on MSDN, the snippet below doesn't > appear to be valid. The LTEXT line ends with a comma, which indicates > that a style should follow. But it doesn't. > > Look at http://msdn2.microsoft.com/en-us/library/aa381021.aspx for > a description, the syntax is : > LTEXT text, id, x, y, width, height [[, style > [[, extended-style]]]] > > Effectively, the arm-wince-cegcc-windres fails to compile this line, > but it accepts it when the comma at the end of the line is removed. > > Question : this is based on one of the examples in the Boling book, > which is from Microsoft Press. Is the example wrong ? > > SMSTalk_PPC DIALOG discardable 25, 5, 120, 98 > STYLE WS_OVERLAPPED | WS_VISIBLE | WS_SYSMENU | DS_MODALFRAME > CAPTION "SMS Talk" > FONT 8, "System" > BEGIN > LTEXT "Received Messages", -1, 4, 4, 128, 10, > LISTBOX IDD_MSGLIST, 4, 14, 128, 48, WS_TABSTOP > > END > > 2. Windres calls the C preprocessor to deal with macros. This is a > sensible thing to do because they appear to follow the C syntax. > > However, this makes it hard to produce sensible error messages. > Consider an input such as this : > ID_MENU_SP RCDATA MOVEABLE PURE > BEGIN > ID_MENU_SP, 2, > I_IMAGENONE, IDOK, TBSTATE_ENABLED, TBSTYLE_BUTTON | > TBSTYLE_AUTOSIZE, IDS_EXIT, 0, NOMENU, > I_IMAGENONE, IDPOP, TBSTATE_ENABLED, TBSTYLE_DROPDOWN | > TBSTYLE_AUTOSIZE, IDS_MENU, 0, 0, > END > > The C preprocessor turns it into this : > 100 RCDATA MOVEABLE PURE > BEGIN > 100, 2, > (-2), 1, 4, 0 | > 16, 401, 0, NOMENU, > (-2), 208, 4, 8 | > 16, 402, 0, 0, > END > > Error messages will describe stuff in the latter format which is > unknown and therefore incomprehensible to the programmer. Not good. > > However, the syntax allowed appears to be a manageable subset of > the C syntax. Would it be a silly idea to implement that limited > subset in windres so it becomes independent of the C preprocessor > and can write better error messages ? > > Does anyone have a better idea? > > Thanks, > > Danny > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share your > opinions on IT & business topics through brief surveys-and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > _______________________________________________ Cegcc-devel mailing list Cegcc-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/cegcc-devel -- Danny Backx ; danny.backx - at - scarlet.be ; http://danny.backx.info
Attachment:
signature.asc
Description: This is a digitally signed message part
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |