// HERE I /most probabely/ can use char[] alias extern(Windows) void function(char[] token, bool eof) MyFuncType; // Here of course NOT ! extern(Windows) export bool dfunc(char* s, MyFuncType cb) { char[] tok; // do something and call cb, (exists in a secondary thread) cb(tok, false); } Sorry. Next time, I'll think twice. Bjoern