import arsd.com;

interface CsharpTest {
	int test();
	int test2(int a);
	string hi(string s);
}

void main() {
	auto obj = createComObject!CsharpTest("Cool.Test"); // early-bind dynamic version
	//auto obj = createComObject("Cool.Test"); // late-bind dynamic version

	import std.stdio;
	writeln(obj.test()); // early-bind already knows the signature
	writeln(obj.test2(12));
	writeln(obj.hi("D"));
	//writeln(obj.test!int()); // late-bind needs help
	//writeln(obj.opDispatch!("test", int)());
}

代码如下.但是编译时很有问题.正确的命令是这样:
!rdmd --build-only -m32mscoff %,用ldc2与dmd都是报有找不到的未定义符号,可能还要编译.但我编译出来的
结果是个900b的空东西.用!rdmd --build-only -m32mscoff %"就没问题了.
然后编译出来的与你上面的a.dll在同一目录,所以就运行成功了.不然直接用rdmd %等等,是不成功的.
或者dmd -i -m32mscoff %,这样也成功了.不折腾.