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

本地的天津网站建设官网优化哪家专业

本地的天津网站建设,官网优化哪家专业,上海注册公司代理电话,东坑网站建设之前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/825432.html

相关文章:

  • 十堰建网站门户型网站
  • 小程序游戏怎么赚钱宁波seo教程网
  • 网站建设预算费用公明做网站
  • 东莞网站建设 胶粘包装材料百度网站好评
  • seo网站权重wordpress 判断管理员
  • 做网站信息做网站添加本地图片
  • 网站开发全流程WordPress图片投稿插件
  • 网站开发财务预算唐山做企业网站公司
  • 简述dw网站开发流程免费空间是什么意思
  • 食品企业网站建设策划方案书东莞seo优化平台
  • 贤邦网站建设app开发php查询信息 wordpress插件
  • 帝国cms手机网站制作wordpress提高访问速度
  • 朋友做的网站图片不显示不出来南昌做任务的网站
  • 青海住房和城乡建设部网站wordpress投稿积分
  • 自建国际网站做电商合肥营销网站建设公司
  • 开篇网站推广虚拟主机销售网站模板
  • php网站开发第三章小程序制作方法教程
  • 南宁网站建设哪个好苏州网络公司哪家最好
  • 廊坊企业网站团队建个企业网站还是开个淘宝店
  • 湖口县建站公司wordpress后台很卡怎么办
  • 什么叫做网站维护扁平化 网站 模板
  • 纯静态企业网站一个月做网站
  • seo品牌优化百度资源网站推广关键词排名滁州网站建设hi444
  • 网站美工效果图怎么做手机版的学习网站
  • 网站推广怎样做织梦免费自适应网站模板
  • 安徽建筑大学城市建设学院网站空间站 参考消息
  • 北京康迪建设监理咨询有限公司网站怎么免费安装wordpress主题
  • 东营做网站优化哪家好互联网营销的特点
  • 专门做折扣的网站网页制作的模板代码
  • 铜仁北京网站建设出售全国精准客户电话号码