zoukankan      html  css  js  c++  java
  • 获得类成员函数地址


    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;
    }
    Hello World!

    4198528 4198528 4198528 4198528
    TTG::m 4198528 TTG::c 4198544
    mm1:4198400 mm2:4198416

    该结果要在release下才能正确
    debug版作了其他的处理,会导致结果不正确。
  • 相关阅读:
    剑指offer
    NET 的 ELK 监控方案
    SSM 框架整合
    搭建ELK 6
    NETCOREAPI 跨域处理
    修改数据库端口为51433
    修改ftp端口为50021
    文件每日备份批处理
    修改3389为53389
    批处理实现自动删除过期文件的定期操作
  • 原文地址:https://www.cnblogs.com/ahuo/p/1580167.html
Copyright © 2011-2022 走看看