Windres questions
Danny Backx
danny.backx@scarlet.be
Wed Mar 7 20:08:00 GMT 2007
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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
URL: <https://sourceware.org/pipermail/binutils/attachments/20070307/c1fa8504/attachment.sig>
More information about the Binutils
mailing list