• 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 > 如何实例化ATL类?

如何实例化ATL类?

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

佚名通过本文主要向大家介绍了atl,atl71.dll,atl100.dll下载,atl71.dll修复,穿越火线atl71.dll等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 如何实例化ATL类?
描述:

本人使用ATL制作一控件,其中有两个类:CCapability2和CNKOTwainCapability,并且CNKOTwainCapability中定义了一ICapability2属性
STDMETHODIMP CNKOTwainCapability::get_CapInfo(ICapability2 **pVal)
{
// TODO: Add your implementation code here
return S_OK;
}
在CNKOTwainCapability中定义一实例对象变量:CCapability2 m_CapInfo;
编译提示说不能实例化抽象类CCapability2,并指明虚函数QueryInterface、AddRef、Release未定义。查了一下,好像说定义的ATL类均未实现IUnknown的这三个函数。那么如何实现呢? 能否简要代码描述?多谢了!


解决方案1:

com对象不能象c++样定义.要先coCreateInstance

解决方案2:

在CNKOTwainCapability定义CCapability2 *m_CapInfo;
然后m_CapInfo=new CComObject<CCapability2>;

解决方案3:

如果你的类CCapability2是通过ATL的Insert Object Wizard添加的话,那是不用实现IUnknown的三个成员函数的(ATL帮你实现了)。
如果的CCapability2就是直接从IUnknown继承下来的。那么IUnknown的三个成员函数是需要你自己去实现的,不然就不能实例化,因为CCapability2还是抽象类啊。你还需要在实现文件中添加如下的代码:
STDMETHODIMP CCapability2::QueryInterface(REFIID riid, void **ppvObject)
{
//
}
unsigned long __stdcall CCapability2::AddRef()
{
//
}
unsigned long __stdcall CCapability2::Release()
{
//
}


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

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

  • 为什么用向导生成的ATLCOM工程(dll)没有dlldatac文件
  • 关于用ATL开发office插件
  • 疑惑:如何使用通过atl工程编写的类接口
  • ATL怎么实现可变参数的接口?
  • codeproject上的经典代码,ATL做OPENGL控件,为什么不能在VB环境下正常工作,如何改进
  • VC的ATL编COM组件,Com之间调用问题
  • 要用atl写个控件,涉及到界面的,怎么将wtl和atl结合起来用呐?用wtl来做控件的界面
  • ATL实现office插件问题?
  • 谁能帮我看一下关于ATL编写COM组件
  • 在ATL中不能用#import导入excel9olb文件么??

相关文章

  • 2017-06-04 求指教,前肩峰,后肩峰,峰值算法
  • 2017-06-04 #import语句导入一个Com的dll,到底导入了什么?
  • 2017-06-04 让一个已打开的资源管理器访问指定的目录!!!!!!!
  • 2017-06-04 Boundschecker检测ocx程序结果如下
  • 2017-06-04 MFC写的应用程序怎么调用C#写的控件?
  • 2017-06-05 求一个vs2008c++的DCOM编程实例
  • 2017-06-04 帮我看看下面的错误!
  • 2017-06-04 我写的BHO插件,IE下调用没问题,在TT下发现不能被加载
  • 2017-06-05 问一个问题:在多线程中开多个定时器,最多能开几个?
  • 2017-06-05 如何在客户程序中调用自己编写的DLL库函数

文章分类

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

最近更新的内容

    • 接口2如何访问接口1中的成员?
    • ActiveX会被淘汰吗
    • 速度飞快,MS的MSDN官方下载,晚了可能就没了
    • 急!怎样做IE帮助对象(即BHO)
    • CTreeCtrl控件添加CheckBox属性就会出现GDI泄漏
    • 线程间调用类成员函数的问题,请兄弟们帮忙。
    • 关于c++读取oracle数据库的问题?
    • 多线程使用COM组件问题,出现异常
    • 使用TeeChart2010控件出现的错误
    • 多线程共享数据区的问题

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

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