bastian@sanctuary: dsss build testcore.d => testcore + /home/bastian/d/bin/rebuild -Idsss_imports/ -I. -S./ -I/home/bastian/d/include/d -S/home/bastian/d/lib/ -I/home/bastian/d/include/d -S/home/bastian/d/lib -I/home/bastian/d/include/d -S/home/bastian/d/lib -oqdsss_objs/G -llecore -I../../../ testcore.d -oftestcore testcore.d:13: function testcore.exit_handler (void*,int,void*) does not match parameter types () testcore.d:13: Error: expected 3 arguments, not 0 testcore.d:12: function e.efl.ecore.core.ecore_event_handler_add (int,int(C *)(void* data, int type, void* event),void*) does not match parameter types (int,int,void*) testcore.d:13: Error: cannot implicitly convert expression (exit_handler()) of type int to int(C *)(void* data, int type, void* event) Command /home/bastian/d/bin/rebuild returned with code 256, aborting. Error: Command failed, aborting. ================================================================================== extern(C) { Ecore_Event_Handler* ecore_event_handler_add(int type, int function(void* data, int type, void* event), void* data); } ================================================================================== module testcore; import e.efl.ecore.core; import tango.io.Console; void main() { Cout("testcore").newline; if(ecore_init() > 0) { ecore_event_handler_add(ECORE_EVENT_SIGNAL_EXIT, exit_handler(), null); ecore_main_loop_begin(); ecore_shutdown(); } else Cout("ecore_init() failed.").newline; } extern(C) { int exit_handler(void* data, int type, void* event) { Cout("exit_handler() called.").newline; ecore_main_loop_quit(); return 0; } }