Module constructor is not called when it is placed in imported module, 
and WinMain is used.


module hello;

import core.runtime;
import std.c.windows.windows;
import std.stdio;
import a;

extern (Windows)
int WinMain(HINSTANCE hInstance,
        HINSTANCE hPrevInstance,
        LPSTR lpCmdLine,
        int nCmdShow)
{
    int result;

    void exceptionHandler (Throwable ex) { throw ex; }
        
    Runtime.initialize(&exceptionHandler);

    result = myWinMain();

    Runtime.terminate(&exceptionHandler);

    return result;
}

int main ()
{
   writeln (i1); // <---------------- prints "1" wich is ok.
   writeln (i2); // <---------------- prints "0" wich is incorrect.
   return 1;
}


/------

module a;

int i1 = 1;
int i2;

static this () {

    i2 = 2;
}

Reply via email to