delphidelphi-xe6vcl-stylesmadexcept

Delphi XE6 issue with styled menus and madExcept


I've faced a really odd behavior of Delphi VCL Styles. With VCL styles enabled, and when madExcept has the "instantly crash on buffer overrun" option activated, the menus become non-styled.

Turning this option off, or switching it to "instantly crash on buffer UNDERrun" fixes the menus issue.

Questions are: did anyone else encounter this issue? Why it happens and how to fix it?


Solution

  • This issue is caused by a internal call to the GetClassName WinAPI function. I just tested and uploaded a fix for that. So you can download the last version of the VCL Styles Utils project from the repository, then add the units Vcl.Styles.Utils.Menus, Vcl.Styles.Utils.SysControls and Vcl.Styles.Utils.SysStyleHook to your project and finally comment or remove the Line (27) {$UNDEF UseVCLStyleUtilsMenu} in the Vcl.Styles.Utils.Menus unit.