• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >vc/mfc > CCmdTarget中好多取vtable地址的是什么意思啊,有什么用啊,请高人指教!!!

CCmdTarget中好多取vtable地址的是什么意思啊,有什么用啊,请高人指教!!!

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-04

佚名通过本文主要向大家介绍了 CCmdTarget中好多取vtable地址的是什么意思啊,有什么用啊,请高人指教!!!等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: CCmdTarget中好多取vtable地址的是什么意思啊,有什么用啊,请高人指教!!!
描述:

如:
void CCmdTarget::EnableAggregation()
{
// construct an CInnerUnknown just to get to the vtable
CInnerUnknown innerUnknown;
// copy the vtable & make sure initialized
ASSERT(sizeof(m_xInnerUnknown) == sizeof(CInnerUnknown));
m_xInnerUnknown = *(DWORD*)&innerUnknown;
}
象这里的 m_xInnerUnknown = *(DWORD*)&innerUnknown;
不懂  请指教  谢谢


解决方案1:

这个没研究过,也不需要深究,但应该是在数据段。
这要知道类经过编译后,数据部分和函数部分已经分离了。
vtable就是一组指向virtual函数的指针。

解决方案2:

请读一些关于COM的基础书,和C++编程思想等C++基础书,就知道vtable有什么用了。
一般来说,接口就是一组函数数组,得到vtable,就相当于得到了这组函数数组的首指针,也就是接口指针了。
类可以理解为一组数据(相当于原来的数据结构,不同的实例对象占用不同的内存)加上一堆函数(所有实例共享这组函数代码,调用成员函数实际上还传送了this指针作为函数的第1个参数),实例没了,可是函数不会丢的。


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • CCmdTarget中好多取vtable地址的是什么意思啊,有什么用啊,请高人指教!!!

相关文章

  • 2017-06-04 Atl开发,不用MFC,有没有类似MFC中的CArray、CList、CMap等集合类呀,我用的是VC60
  • 2017-06-05 线程消息发送问题
  • 2017-06-04 在用MFC做的控件上使用模态对话框,高手帮帮忙
  • 2017-06-05 FireFox插件调用ATL控件接口
  • 2017-06-04 请教一个关于操作复合文件的问题
  • 2017-06-04 调试Filter时提示InvalidDirectory
  • 2017-06-05 使用regsvr32注册DLL时遇到的问题
  • 2017-06-04 如何在事件中传送字符串函数!!!
  • 2017-06-05 在MFC中如何添加flash
  • 2017-06-04 ATL做的axtivex嵌入网页单击后页面编辑框不能输入

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 调用参数问题高手快来呀--
    • WebBrowse中,如何将页面滚动到指定位置
    • 请问各位高手,谁知道如何通过vc访问office环境下的宏,包括读取和修改功能
    • vcword操作
    • 一条select语句的问题
    • ATL对话框,获取输入框的值
    • 多线程调试的问题
    • vc编程把excel里面的数据导入到mysql对应表里
    • 哪里有控件源程序?
    • 请问各位高手如何做一个不带动态连接库的可执行文件

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有