函数指针的问题
全局定义:
typedef LRESULT(CALLBACK* MyProc)(DWORD, DWORD);
class MyClass
{
public:
void Do()
{
MyProc p1 = Proc;
MyProc p2 = MyClass::Proc;
MyProc p3 = &MyClass::Proc;
typedef LRESULT (CALLBACK MyClass::*TMP)(DWORD, DWORD);
TMP p4 = &MyClass::Proc;
TMP p5 = this->Proc;
TMP p6 = &Proc;
p4(0, 0);
}
LRESULT CALLBACK Proc(DWORD, DWORD)
{
return 0;
}
}
在以上代码中,DO函数的6个变量只有p4能编译通过,但调用p4(0,0)失败。