Comment #0 by andrej.mitrovich — 2011-06-14T18:20:05Z
winsamp:
- WinMain was catching Exceptions instead of Throwable. Throwable should be caught in order to demonstrate the creation of a message box on a null dereference.
- With optimizations On the compiler is smart enough to detect that a null dereference is in play and it denies compilation. To trick the compiler I've made a pointer variable in module scope which is null-initialized.
- The example was leaking GDI objects. Here's a tip:
In the task manager, select View>Select Columns> and put a check next to GDI Objects. On the old example try resizing the window and witness the holy grail of GDI leakage!
- The example used old-style prototypes of runtime initialization functions. I've replaced this with an import to cure.runtime and used that inside of WinMain.
- Added a pragma to gdi32.lib, and a note that the user can compile via "-L-Subsystem:Windows". .def files are rarely required unless you're doing something super-special like renaming symbols.
- The window size was too small to even show the message.
- The switch statements were missing default cases. The example wouldn't compile in the next release.
The updated sample is in the attachment. Tested on XP32 and Win7.
dhry: Just a missing default case.
Finally, why aren't the samples on Github anywhere?
Comment #1 by andrej.mitrovich — 2011-06-14T18:21:23Z