static constructor not working with WinMain GUI app

Simen kjaeraas simen.kjaras at gmail.com
Tue Nov 23 12:36:57 PST 2010


Andrej Mitrovic <none at none.none> wrote:

> maintest.def:
> EXETYPE NT
> SUBSYSTEM WINDOWS
>
> maintest.d:
> http://pastebin.com/3c4CKDG1
>
> Compiled with DMD 2.050:
> dmd maintest.d maintest.def
>
> The output in the log file is "Lenght: 0". The static constructor is  
> never called when using WinMain.
>
> But if I use a normal "void main()" function instead of WinMain, then  
> the static constructor does get called. Here's a working example that  
> tests a GUI dialogbox and outputs "Length: 4" in the log file:
>
> maintest.def:
> EXETYPE NT
> SUBSYSTEM WINDOWS
>
> maintest.d:
> http://pastebin.com/3UDKmxJ1
>
> dmd maintest.d maintest.def
>
> This looks like a bug to me..

Looking at http://digitalmars.com/d/2.0/windows.html, it seems your
template for WinMain is outdated.

You should use the template on that page, but beware that
exceptionHandler should take a Throwable, not an Exception, like the
example says. This error is reported:
http://d.puremagic.com/issues/show_bug.cgi?id=5261

-- 
Simen


More information about the Digitalmars-d-learn mailing list