当前位置: 首页 > wzjs >正文

建设银行网站无法访问东莞疫情最新消息今天新增

建设银行网站无法访问,东莞疫情最新消息今天新增,东莞人才网58,云阿里云做网站之前2篇Blog说明了如何在Windows下确定虚函数在虚函数表中的位置 这里说明Linux gcc是如何得到虚函数在表中的位置。 首先,gcc没有用thunk, 直接调用虚函数,所以,我们在windows中读取thunk的函数 用在Linux环境下,直接就是一个 O…

之前2篇Blog说明了如何在Windows下确定虚函数在虚函数表中的位置

这里说明Linux gcc是如何得到虚函数在表中的位置。
首先,gcc没有用thunk, 直接调用虚函数,所以,我们在windows中读取thunk的函数
用在Linux环境下,直接就是一个 Offset , 非常方便!

template <typename T>
union TFP;
// 特化模板,支持成员函数指针
template <typename ClassType, typename ReturnType, typename... Args>
union TFP<ReturnType(ClassType::*)(Args...)> {using MemberFuncPtr = ReturnType(ClassType::*)(Args...);  // 成员函数指针类型MemberFuncPtr memberFunc;  // 成员函数指针void* ptr;  // 在Linux环境下,这里其实是一个表示Offset的数字,而不是指针
};template <typename ClassType, typename ReturnType, typename... Args>
uint64_t GetMemberFnOffset(ReturnType(ClassType::* func)(Args...))
{TFP<decltype(func)> fp;fp.memberFunc = func;   return (uint64_t)fp.ptr; 
}

但是有一点需要注意,获得的Offset不要直接使用,而是确定虚函数的次序
例如下图:
在这里插入图片描述
我们看到第一个函数setCallback 的 Offset 为 17, 下一个函数init的Offset为 25, 就是 17 + 8
其实真正的第一个函数是类的析构函数,他的Offset为 9
至于为什么不是8,或者 0, 我也不知道…

http://www.dtcms.com/wzjs/35056.html

相关文章:

  • 政务网站的建设站长之家域名查询排行
  • qq游戏做任务领铜板网站引擎优化
  • 湖南住房城乡建设部网站站长网站大全
  • 沈阳市网站建设报价短视频seo软件
  • 多合一网站源码百度竞价排名服务
  • 邢台哪里可以做网站惠州seo优化
  • 襄阳seo费用长沙快速排名优化
  • 西安市做网站的浏览器老是出现站长工具
  • 河北省镇政府做网站吗免费seo网站诊断
  • 应该知道的网站app推广员好做吗
  • 网站怎么做移动图片大全水果网络营销策划书
  • 网站建设及维护机万网域名管理平台
  • 重庆综合网站建设配件如何查看百度搜索指数
  • 赣州seo中山网站seo优化
  • 东光网站建设新站seo优化快速上排名
  • 1006网站建设网络营销成功的案例及其原因
  • 用jsp做网站默认显示this is my jsp page济南网络优化网站
  • 织梦网站需要优化搜索引擎营销分析
  • 企业管理网站系统百度网站是什么
  • 网站后台维护教程seo关键词报价查询
  • 普陀手机网站建设北京seo培训机构
  • 个人网站主页设计教程站长工具端口检测
  • 大连响应式网站建设谷歌google官网入口
  • 茂名专业网站建设品牌推广策略怎么写
  • 做海报的网站什么编辑器企业网站seo
  • 传诚信网站建设津seo快速排名
  • 做网站学习什么模板网站免费
  • 什么是网络营销理论seo关键词快速排名介绍
  • 专业做俄语网站建设司网络推广和网站推广
  • 网站开发营销型营销推广计划书