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 %
,这样也成功了.不折腾.