• 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 > MFC方式的COM编程,嵌套类对象与父类对象的偏移问题

MFC方式的COM编程,嵌套类对象与父类对象的偏移问题

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

佚名通过本文主要向大家介绍了 MFC方式的COM编程,嵌套类对象与父类对象的偏移问题等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: MFC方式的COM编程,嵌套类对象与父类对象的偏移问题
描述:

#define METHOD_PROLOGUE_EX(theClass, localClass) \
 theClass* pThis = ((theClass*)((BYTE*)this - m_nOffset)); \
 AFX_MANAGE_STATE(pThis->m_pModuleState) \
 pThis; // avoid warning from compiler \
m_nOffset的计算如下:
m_nOffset= offsetof(theClass, m_x##localClass);
以下是COM原理与应用中注释:
嵌套类的m_nOffset成员记录了嵌套类对象与父类对象的偏移,所以在嵌套类内部,可以根据此偏移经计算得到父类的指针pThis,然后利用pThis调用父类的成员函数。
我的问题是:
父类的指针pThis 不就是 this 指针么?若是的话,根本不用计算出pThis 指针,真搞不懂!


解决方案1:

你看清楚啊:
class AAA
{
    class BBB
    {
        
    };
};
在BBB内部this指向BBB对象地址,而要引用AAA对象地址,用this怎么可以?

解决方案2:

>>>>> 父类的指针pThis 不就是 this 指针么?
不是的,this指针是嵌套类的this指针,pThis是父类的指针。
this实际上指向嵌套类的实例,所以不能等同于pThis。


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

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

  • MFC方式的COM编程,嵌套类对象与父类对象的偏移问题

相关文章

  • 2017-06-05 调用delphi写的DLL抛出异常访问异常,怎么解决?
  • 2017-06-04 我想用VCDBGRID修改数据同时更新,删除等操作,,请问怎样可以实现
  • 2017-06-04 如何才能编写能使用脚本调用的组件?????
  • 2017-06-04 ACTIVEX如何激活树控件的事件?
  • 2017-06-05 cruntimelibrary是什么意思请高手解释
  • 2017-06-04 我安装了WTL71,编译它自带的例子MTPad,提示编译出错,为什么?
  • 2017-06-04 oxc打包错误?
  • 2017-06-04 在activeX中再嵌入Excel谁做过?救急
  • 2017-06-05 使用iphlpapidll出的问题
  • 2017-06-05 ocx控件在WIN7下非管理员账户不能创建本地文件,咋搞?

文章分类

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

最近更新的内容

    • XP下,能跨进程发送消息吗?
    • 为什么win32dll不能被vb程序调用
    • 初学者在问:用ATL错误。根据资料写的,但却通不过。
    • 大家看看这个错误时什么原因
    • 我做了一个服务器端的socket程序,在多线程处理数据的时候,出现了瓜瓜的现象
    • 怎样用asp打印数据库的报表?急急急
    • 有谁用过WTL的属性表类CPropertySheetImpl创建向导对话框--我碰到奇怪的问题
    • Lib中如何设置全局变量?我想在Lib内部传递参数,始终不成功,请问如何是好?
    • 关于数组越界问题
    • WPS2012二次开发问题,以管理员权限运行就失败,环境:Windows7x64

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

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