Exceptions from WinMain
Dave Brown
d.brown at bigdavedev.com
Tue Feb 19 04:38:36 PST 2013
Hi folks,
The example of setting up a Win32 program in D is a great
starting point, but I have a concern about manually setting up
and tearing down the D runtime.
If myWinMain throws an exception that isn't caught, then it is
caught in WinMain instead. This causes us to miss the call to
RunTime.terminate(...).
My solution was to call RunTime.terminate in a scope(exit) block,
which assures that terminate would be called. This still doesn't
seem fully correct, since we ignore the return value of
initialise and terminate, which complicates things a bit more.
If I were to throw on a false from initialise then I would call
terminate (obviously not good...)
Ultimately my question is: Is there a "safer" way to start a
Win32 program, or should I assume that myWinMain cannot throw?
D is still relatively new to me, so I chances are high I missed
something obvious :)
/Dave
More information about the Digitalmars-d-learn
mailing list