• 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 > 使用QueryInterface时的问题

使用QueryInterface时的问题

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

佚名通过本文主要向大家介绍了queryinterface,queryinterface失败,src queryinterface,解析包时出现问题,解析程序包时出现问题等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 使用QueryInterface时的问题
描述:

自己用atl做的com DLL,里面实现了两个接口,客户程序通过#import引入com
在生成的.tlh文件中相关的接口定义如下
struct /* coclass */ TestAtlcom;
struct __declspec(uuid("6c1a39cb-3183-4b32-bf8e-0ffc26e801c6"))
/* dual interface */ ITestAtlcom;
struct /* coclass */ TestAtlcom2;
struct __declspec(uuid("0ea750ba-fdb0-4291-9a9d-ae2e6d9bf1a0"))
/* dual interface */ ITestAtlcom2;
//
// Smart pointer typedef declarations
//
_COM_SMARTPTR_TYPEDEF(ITestAtlcom, __uuidof(ITestAtlcom));
_COM_SMARTPTR_TYPEDEF(ITestAtlcom2, __uuidof(ITestAtlcom2));
//客户程序中我是这样用的
//首先声明
ITestAtlcomPtr m_Iatl;
ITestAtlcom2Ptr m_Iatl2;
//对于m_Iatl  
m_Iatl.CreateInstance(__uuidof(TestAtlcom)) //这是成功的
//对于m_Iatl2,我想利用一下QueryInterface
m_Iatl.QueryInterface(__uuidof(TestAtlcom2),(void**)&m_Iatl2);
//上面的做法怎么也得不到接口m_Iatl2,错在哪里我不太清楚,请高手指点
//另外我也试了下面的办法,还是错
m_Iatl->QueryInterface(__uuidof(ITestAtlcom2),(void**)&m_Iatl2);


解决方案1:

TestAtlcom是ITestAtlcom的工厂。如果想用QueryInterface返回ITestAtlcom2,TestAtlcom必须实现ITestAtlcom2。
也就是说,或者ITestAtlcom继承ITestAtlcom2,或者TestAtlcom同时继承ITestAtlcom和ITestAtlcom2。

解决方案2:

ITestAtlcom2 *m_Iatl2;

解决方案3:

ITestAtlcom2 m_Iatl2;


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

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

  • 如何修改ATL自动生成的COM方法呢?比如QueryInterface,CreateInstence
  • 重写QueryInterface,AddRef,Release应该注意些什么?我这段代码怎么总是有问题。
  • 使用COM组件时,QueryInterface调用失败是什么原因
  • tempRs->QueryInterface__uuidof_Recordset,voidm_Recordset编译没错,vb调用报自动化错误
  • 在线等待关于queryinterface的问题
  • 关于QueryInterface,求助啊!
  • 奇怪:成功激活也能成功调用,为什么queryinterface查询第二个接口报告“拒绝访问”?
  • 为什么Queryinterface返回的IUnknown指针总是相同的
  • 求QueryInterface例子
  • 请问QueryInterface有什么用呢?

相关文章

  • 2017-06-05 com要和net互操作传递一个数组,应该传递什么类型的数据?
  • 2017-06-05 关于线程同步的一个简单问题
  • 2017-06-05 这个线程是工作者还是UI线程?
  • 2017-06-04 求助,关于activeX控件,添加的方法中参数可以为指针吗?马上给分
  • 2017-06-04 关于HTML提示条的问题很菜的一个问题!
  • 2017-06-04 关于mapobjects23的问题
  • 2017-06-04 VB6的EXE源码转换成dll源码可以吗?
  • 2017-06-04 请高手帮忙解释一下宏METHOD_PROLOGUE_EX
  • 2017-06-05 清除多媒体文件弹出广告网页的原理?
  • 2017-06-05 想接受一个窗口句柄,怎样实现

文章分类

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

最近更新的内容

    • CreateProcess、CreatePipe问题
    • 结构体参数问题(期待高手。。。)
    • 钩子函数如何正确卸载?我应该在合适的时候调用卸载函数?
    • 谁能解释清楚COM的类厂是个什么概念,用在什么地方,怎么用?欢迎大家来讨论!!!!
    • 请问在word中怎么加入activex控件
    • 关于拦截其他进程文本框的WM_CHAR消息
    • 如何把一个无源码静态连接库封装成dll,谢谢。
    • 注册表注册出问题了,HELP!!在线等待
    • 用Excel模板生成报表,模板中有多个报表表头样式,如何让生成后的xls文件只含其中的一个!
    • 关于treectrl多节点拖拽和删除的问题

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

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