Adam thank you, it works now! May I ask one more question: why a code like this would work in D-application but not in D-DLL? (also I notice some other D functions don't work in DLL): import std.string; export extern(C) string my(string input) { string output = ""; auto lines = input.lineSplitter(); foreach (line; lines){ output ~= line; } return output }