static constructor not working with WinMain GUI app

Andrej Mitrovic andrej.mitrovich at gmail.com
Wed Nov 24 06:33:15 PST 2010


Ok I've filed a bug report and the fix:
http://d.puremagic.com/issues/show_bug.cgi?id=5268

On 11/24/10, Andrej Mitrovic <andrej.mitrovich at gmail.com> wrote:
> This means the windows sample code that comes with DMD in the samples
> folder has to be updated, that's where I took the template from.
>
> Thanks.
>
> On 11/23/10, Simen kjaeraas <simen.kjaras at gmail.com> wrote:
>> 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