On 8/2/16 1:04 PM, Rufus Smith wrote:
On Tuesday, 2 August 2016 at 16:30:08 UTC, Adam D. Ruppe wrote:
On Tuesday, 2 August 2016 at 16:21:07 UTC, Rufus Smith wrote:
How does one use C main? extern C?

extern(C) int main()

should do it

It doesn't seem to be that easy!

https://wiki.dlang.org/Runtime_internals

This is just explaining how the runtime currently works, not how you should override it.

It's really easy actually. Example:

$ cat main.c
#include <stdio.h>

extern int rt_init();
extern void d_func();
int main(int argc, char *argv[])
{
    printf("hello from C!\n");
    rt_init();
    printf("done initializing runtime\n");
    d_func();
}
$ cat dmain.d
extern(C) void d_func()
{
    import std.stdio;
    writeln("hello from D!");
}

shared static this()
{
    import std.stdio;
    writeln("doing some pre-run init!");
}
$ gcc -c main.c
$ dmd dmain.d main.o
$ ./dmain
hello from C!
doing some pre-run init!
done initializing runtime
hello from D!

-Steve

Reply via email to