请教D语言编程方法问题

whoareu 2008-04-25
在从C++转到D语言学习时,发现这么一个问题:

对于windows编程,很多功能需要向采用回调函数与操作系统进行交流,例如:
Timer 功能,采用类进行封装时,对于C++可以采用以下模式:

class MyTimer
{

Create()
{
UINT hTimer=TimeSetEvent(, , timerproc, (DWORD)this, ..); //将this指针作为自定义参数传到timerproc回调函数中。
.....

}

static timerproc( , , DWORD dwuser, ,, )
{
//取回传给的this指针,以便进行实例操作
MyTimer *P =(MyTimer *)dwuser;

p->MyFunc();
.....

}

void myFunc() .....


}


可是在D语言中,根据文档说明,类的指针不能这么进行转换和使用,想请教大家有什么好的封装方式,难道非得建一个指针表来进行查询?我强行使用指针转换,发现根本不行。
Colorful 2008-04-26
请参考http://www.digitalmars.com/d/2.0/function.html中Delegates, Function Pointers, and Closures章节
oldrev 2008-04-26
跟C++差不多的嘛
被 Windows 回调的函数应该声明为 extern(system) static void func();
转型用 cast(T)(value)