void mm1()
{
printf("mm1");
return;
}
class TTG
{
public:
int a;
void m()
{
printf("m");
return;
};
void c()
{
printf("c");
return;
};
};
void mm2()
{
printf("mm2");
return;
}
int main(int argc, char* argv[])
{
printf("Hello World!\n");
TTG g;
typedef void (TTG::* PF)(void);
PF pt= g.m;
PF pt1= TTG::m;
DWORD addr=*(DWORD*)&pt;
printf("%d %d %d %d \n",pt,pt1,addr,TTG::m);
printf("TTG::m %d TTG::c %d\n",g.m,g.c);
DWORD add1=(DWORD)mm1;
DWORD add2=(DWORD)mm2;
printf("mm1:%d mm2:%d\n",add1,add2);
return 0;
}
4198528 4198528 4198528 4198528
TTG::m 4198528 TTG::c 4198544
mm1:4198400 mm2:4198416
该结果要在release下才能正确
debug版作了其他的处理,会导致结果不正确。