See if this works for you:

import core.runtime;

void myMainFunc()
{
}

extern (C)
int initializeDee()
{
    int result;
    void exceptionHandler(Throwable e) { throw e; }

    try
    {
        Runtime.initialize(&exceptionHandler);
        result = myMainFunc();
        Runtime.terminate(&exceptionHandler);
    }
    catch (Throwable o)
    {
        result = 0;
    }
    return result;
}

This is similar to how it's done for Windows GUI applications, where
we have to manually run the initialize function in druntime (unless
it's hidden by some GUI framework).

Reply via email to