函数指针的使用,模拟事件机制
void proc1()
{
ShowMessage("1");
}
void proc2()
{
ShowMessage("2");
}
void proc3()
{
ShowMessage("3");
}
class event
{
public:
//void (*fun)(void)[100];
event()
{
index = 0;
fun = (DWORD *)malloc(100);
}
DWORD *fun;
int index;
Register(void *re)
{
fun[index++] = (DWORD)re;
}
CallEvent()
{
void (*proc)(void);
for(int i = 0; i < index ; i++)
{
(void *)proc = (void *)(fun[i]);
proc();
}
}
};
void __fastcall TForm1::Button1Click(TObject *Sender)
{
event even;
even.Register((void *)proc1);
even.Register((void *)proc2);
even.Register(proc3);
even.CallEvent();
}