Here's one of my (
PhlIp's) many unanswered questions on the
MicroSoft news servers:
http://groups.google.com/groups?selm=63604d2.0312101102.36dde140%40posting.google.com
I sought a
lint program for MS Resource files, to detect
GraphicalUserInterface style errors. See the third list below.
And here's the answer:
This program reads VC++ Resource files, but only as VC++ writes them. Because this program detects syntax errors by faulting, run your resources thru VC++ first. This program is also case sensitive, and features these other good things:
It's a refactor away from using the
VisitorPattern.
The style is nearly perfectly portable
CeePlusPlus, but of course with a few Win32-only tweaks, and of course it has only been compiled and (ahem) tested using VC++6.
The program roughly detects these style errors:
- Button missing hotkey
- Duplicated Control hotkey
- Duplicated MenuItem hotkey
- Missing & in Menu Label
- Missing accelerator prompt in Menu Label (the Ctrl+C thing on the right)
- Missing StringTable help for MenuItem
- Prompt at end of control list
- Prompt before control without tabstop
Further work should target the tooltips for toolbars, and the exact lettering of the accelerator prompts.
A new subsystem could detect layout errors, such as prompts not to the upper left of their target fields (locale permitting). But that would require another system to disable these errors when they become hyperactive.
Use this system if you have many dialogs expressed as raw resources (which you should not), or if you use text replacements on the resource files to localize them. In that case, the
lint targets (for 8-bit encodings) the result of replacing those strings. They would need different, unique &hotkeys and accelerator keys.
CategoryLint