Mike Parker <aldac...@gmail.com> wrote:
For starters, your first delegate is declared in an extern(C) block, meaning it has C linkage. The second is declared outside of the block, meaning it has D linkage. So they are two different types of delegates.
If this is correct, the problem should be fixable by writing extern(C) void d_foo_add_event_handler(Foo, void delegate()); or (not entirely sure about this one) alias void delegate() voidDelegate; extern(C) { void d_foo_add_event_handler(Foo, voidDelegate); } -- Simen