Hi.

I am trying to translate the following from the Dart header:
typedef void (*Dart_MessageNotifyCallback)(Dart_Isolate dest_isolate);

So I made a little simple test to understand callbacks in D. The code below works fine if you remove the extern(C). But I get the error "functionpointertest.d(6): Error: basic type expected, not extern" with the code as it is.

How do I use alias with extern ?

Thanks.


Laeeth.

import std.stdio;
// test_typedef.d

//typedef void (*Dart_MessageNotifyCallback)(Dart_Isolate dest_isolate);

alias Callback= extern(C) void function(int);

extern(C) void testfn(int i)
{
        writefln("%s",i+1);
        return;
}

extern(C) void testfn2(int i)
{
        writefln("%s",i*i);
        return;
}

void foo(Callback callback)
//void foo(void function(int) callback)
{
        callback(100);
        //callback(101);
}

void main()
{
        foo(&testfn);
        foo(&testfn2);
}

Reply via email to