[疑难] 请教委托的使用!
hurd
2008-10-20
我自己测试如下方式使用通过编译。
interface IUnknown_{} class klass : IUnknown_{ this(){} void add(void delegate() dg){} } void main(){ auto t = new klass; t.add(delegate void(){}); } 代码改成这样就提示错误 interface IUnknown{} class klass : IUnknown{ this(){} void add(void delegate() dg){} } void main(){ auto t = new klass; t.add(delegate void(){}); } 引用 t2.d(8): function t2.klass.add (void delegate()) does not match parameter types (void delegate()) t2.d(8): Error: cannot implicitly convert expression (__dgliteral1) of type void delegate() to void delegate() |
|
hurd
2008-10-20
那位大哥知道怎么解决啊。
|
|
oldrev
2008-10-20
IUnknown 是个特殊的名字,是编译器内部为 COM 准备的,不要定义你自己的 IUnknown
|
|
hurd
2008-10-21
不管是自那里继承IUnknown的类,里面的委托必须使用 extern (Windows)才可以通过编译。
我自己写个IUnknown只是为了错误测试。。 |