[☆☆☆☆☆]void WINAPI类型的函数怎样作为class成员函数被callback?
我在做网络拨号程序的时候碰到这样一个问题:
在拨号调用函数(原型定义ras.h)
DWORD APIENTRY RasDialA( LPRASDIALEXTENSIONS, LPCSTR, LPRASDIALPARAMSA, DWORD,LPVOID, LPHRASCONN );
其中第5个参数LPVOID是一个VOID WINAPI 返回的函数指针,用来被设置为callback函数,一般被申明为:
void WINAPI RasDialFunc(UINT MSG,RASCONNSTATE rasconnstate,DWORD dwError);
拨号函数的调用实例为:
int ret=RasDialA(NULL,NULL,¶ms,0,&RasDialFunc,&hrasconn);
==================================
当把callback函数void WINAPI RasDialFunc申明为全局函数时,这一切都没有问题!
==================================
但当把void WINAPI RasDialFunc申明为一个class的成员函数时,问题就出现了。
class TUDialNetwork{
public:
void __fastcall beginDial();
void WINAPI RasDialFunc(UINT MSG,RASCONNSTATE rasconnstate,DWORD dwError);
}
void WINAPI TUDialNetwork::RasDialFunc(UINT MSG,RASCONNSTATE rasconnstate,DWORD dwError){}
调用方法:
void __fastcall TUDialNetwork::beginDial()
{
int ret=RasDialA(NULL,NULL,¶ms,0,&RasDialFunc,&hrasconn);
}
编译都通不过!
=================================
哪位高手指点迷津?