Re: static constructor not working with WinMain GUI app

2010-11-24 Thread Andrej Mitrovic
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.kja...@gmail.com wrote:
 Andrej Mitrovic n...@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



Re: static constructor not working with WinMain GUI app

2010-11-24 Thread Andrej Mitrovic
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.mitrov...@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.kja...@gmail.com wrote:
 Andrej Mitrovic n...@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




Re: static constructor not working with WinMain GUI app

2010-11-23 Thread Simen kjaeraas

Andrej Mitrovic n...@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


Re: static constructor not working with WinMain GUI app

2010-11-23 Thread Michal Minich
On Tue, 23 Nov 2010 15:23:12 -0500, Andrej Mitrovic wrote:

 The static constructor is never called when using WinMain.

Make sure you use newest DMD, I think in 2.048 or 49 there was bug that 
module constructors were not called.