[Issue 6158] New: winsamp and dhry samples need an update

d-bugmail at puremagic.com d-bugmail at puremagic.com
Tue Jun 14 18:24:48 PDT 2011


http://d.puremagic.com/issues/show_bug.cgi?id=6158

           Summary: winsamp and dhry samples need an update
           Product: D
           Version: D2
          Platform: Other
        OS/Version: Windows
            Status: NEW
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: nobody at puremagic.com
        ReportedBy: andrej.mitrovich at gmail.com


--- Comment #0 from Andrej Mitrovic <andrej.mitrovich at gmail.com> 2011-06-14 18:20:05 PDT ---
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?

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------


More information about the Digitalmars-d-bugs mailing list