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");
}
}