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: * MsWindowsResourceLintTestHeader * MsWindowsResourceLintHeader * MsWindowsResourceLintSource 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: * RecursiveDescentParser * InterpreterPattern * TestDrivenDevelopment * YouArentGonnaNeedIt 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