On 8/11/2010 1:09 PM, Walter Bright wrote:
dickl wrote:
I should have been a little more clear, a static this() as a member of
a class.

Still works:
--------------------------

H:\cbx>type test.d

import std.stdio;

void main()
{
printf("hello\n");
}

class C
{
static this()
{
printf("betty\n");
}
}


H:\cbx>dmd test

H:\cbx>test
betty
hello

H:\cbx>

Looks like it might be windows specific. This doesn't work (only prints out "again"


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


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

    try
    {
        Runtime.initialize();
        return myWinMain(hInstance, hPrevInstance, lpCmdLine, nCmdShow);


        }//end try

    catch (Object o)            // catch any uncaught exceptions
    {
MessageBoxA(null, toStringz(o.toString()), "Fatal Error", MB_OK | MB_ICONERROR);
    }finally
    {
        Runtime.terminate();
    }


    return 0;
}//end int WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)


int myWinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{

                foo f = new foo;
        
                return 1;
}//end int myWinMain HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)


class foo
{
public:
        static this()
        {
                writeln("Hello");
        }
        static ~this()
     {
        }
        this()
        {
                writefln(" again");
        }
}


Reply via email to