• 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工程,atl项目工程师,atl,atl71.dll,atl100.dll下载等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: ? ATL工程连接点向导问题
描述:

    我在ATL工程中添加一个simple object,并在attribute选项中指定dual和support connection point选项,这时会在工程中出现事件接口。我随便添加一个入接口函数Test()和一个出接口函数TestResp()。要想调用事件响应,必须实现连接点,我首先对工程进行编译,产生tlb文件,然后使用连接点向导并指定该tlb文件并选中刚才的事件接口,这时产生一个连接点实现的包装类CProxy_IMyAdvCalcEvents。现在我开始编译我的工程, 会出现错误和警告:
CalcClt.exe - 13 error(s), 8 warning(s)
具体的错误信息我贴出来:
Compiling...
Calc.cpp
e:\testprojects\disp\calc\debug\calc.tlh(17) : warning C4099: 'MyCalc' : type name first seen using 'class' now seen using 'struct'
        e:\testprojects\disp\calc\calc.h(56) : see declaration of 'MyCalc'
e:\testprojects\disp\calc\debug\calc.tlh(22) : warning C4099: 'MyAdvCalc' : type name first seen using 'class' now seen using 'struct'
        e:\testprojects\disp\calc\calc.h(74) : see declaration of 'MyAdvCalc'
e:\testprojects\disp\calc\debug\calc.tlh(39) : warning C4099: 'MyCalc' : type name first seen using 'class' now seen using 'struct'
        e:\testprojects\disp\calc\calc.h(56) : see declaration of 'MyCalc'
e:\testprojects\disp\calc\debug\calc.tlh(43) : error C2011: 'IMyCalc' : 'struct' type redefinition
e:\testprojects\disp\calc\debug\calc.tlh(56) : error C2011: '_IMyAdvCalcEvents' : 'struct' type redefinition
e:\testprojects\disp\calc\debug\calc.tlh(60) : warning C4099: 'MyAdvCalc' : type name first seen using 'class' now seen using 'struct'
        e:\testprojects\disp\calc\calc.h(74) : see declaration of 'MyAdvCalc'
e:\testprojects\disp\calc\debug\calc.tlh(65) : error C2011: 'IMyAdvCalc' : 'struct' type redefinition
e:\testprojects\disp\calc\debug\calc.tlh(72) : error C2374: 'LIBID_CALCLib' : redefinition; multiple initialization
        e:\testprojects\disp\calc\calc.h(303) : see declaration of 'LIBID_CALCLib'
e:\testprojects\disp\calc\debug\calc.tlh(74) : error C2374: 'CLSID_MyCalc' : redefinition; multiple initialization
        e:\testprojects\disp\calc\calc.h(305) : see declaration of 'CLSID_MyCalc'
e:\testprojects\disp\calc\debug\calc.tlh(76) : error C2374: 'IID_IMyCalc' : redefinition; multiple initialization
        e:\testprojects\disp\calc\calc.h(96) : see declaration of 'IID_IMyCalc'
e:\testprojects\disp\calc\debug\calc.tlh(78) : error C2374: 'DIID__IMyAdvCalcEvents' : redefinition; multiple initialization
        e:\testprojects\disp\calc\calc.h(320) : see declaration of 'DIID__IMyAdvCalcEvents'
e:\testprojects\disp\calc\debug\calc.tlh(80) : error C2374: 'CLSID_MyAdvCalc' : redefinition; multiple initialization
        e:\testprojects\disp\calc\calc.h(419) : see declaration of 'CLSID_MyAdvCalc'
e:\testprojects\disp\calc\debug\calc.tlh(82) : error C2374: 'IID_IMyAdvCalc' : redefinition; multiple initialization
        e:\testprojects\disp\calc\calc.h(192) : see declaration of 'IID_IMyAdvCalc'
e:\testprojects\disp\calc\calccp.h(7) : fatal error C1903: unable to recover from previous error(s); stopping compilation
        e:\testprojects\disp\calc\mycalc.h(15) : see reference to class template instantiation 'CProxy_IMyAdvCalcEvents<class CMyCalc>' being compiled
MyCalc.cpp
e:\testprojects\disp\calc\debug\calc.tlh(17) : warning C4099: 'MyCalc' : type name first seen using 'class' now seen using 'struct'
        e:\testprojects\disp\calc\calc.h(56) : see declaration of 'MyCalc'
e:\testprojects\disp\calc\debug\calc.tlh(22) : warning C4099: 'MyAdvCalc' : type name first seen using 'class' now seen using 'struct'
        e:\testprojects\disp\calc\calc.h(74) : see declaration of 'MyAdvCalc'
e:\testprojects\disp\calc\debug\calc.tlh(39) : warning C4099: 'MyCalc' : type name first seen using 'class' now seen using 'struct'
        e:\testprojects\disp\calc\calc.h(56) : see declaration of 'MyCalc'
e:\testprojects\disp\calc\debug\calc.tlh(43) : error C2011: 'IMyCalc' : 'struct' type redefinition
e:\testprojects\disp\calc\debug\calc.tlh(56) : error C2011: '_IMyAdvCalcEvents' : 'struct' type redefinition
e:\testprojects\disp\calc\debug\calc.tlh(60) : warning C4099: 'MyAdvCalc' : type name first seen using 'class' now seen using 'struct'
        e:\testprojects\disp\calc\calc.h(74) : see declaration of 'MyAdvCalc'
e:\testprojects\disp\calc\debug\calc.tlh(65) : error C2011: 'IMyAdvCalc' : 'struct' type redefinition
---------------------------------------------------------------------
请有经验的朋友帮我指点一下如何使用该向导,为什么向导产生的代码不能直接编译呢?


解决方案1:

一个Atl对象应该只对应一个ControlEvents,你有两个Atl对象,应该要定义两个不同的ControlEvents吧

解决方案2:

"然后使用连接点向导并指定该tlb文件并选中刚才的事件接口"
直接使用默认的"项目(P)"的idl文件 实现连接点


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

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

  • 在ATL工程中怎么写文件?用fprintf老是报错!!!
  • 请教:ATL工程中定时器的使用
  • 我在一个ATL工程中使用_bstr_t还要加#include<atlctlh>头文件吗,不加说bstr_t没定义,加了出现2个连接错误
  • 我希望创建一个类似于MFC工程一样的有窗口的ATL工程,但是用默认的ATLwizard创建的却是无窗口的控件,那我该怎么办呢?
  • 把某个ATL工程的功能移植到MFC的工程里怎么就那么难?
  • ATL工程中两个类之间参数怎么调用
  • ATL工程中一个支持连接点的接口实现类中能够增加多个入接口,出接口?
  • ATL工程中使用MFC类的问题
  • 在vs2005中建一个atl工程,为什么会出现二个同名工程,第二个是第一个名称后加ps
  • 做一个ATL的EXE工程,为什么编译的时候会运行一次?

相关文章

  • 2017-06-04 在VS2005中ACTIVEX控件在关联变量同时怎么样关联外部属性啊?以前VC6是有地,但2005无这个选项
  • 2017-06-04 请大侠帮忙:在VC中操作Excel的多个Sheet,使其可见,然后关闭Excel时出错?都进来看看,贴了部分代码。
  • 2017-06-04 com的dll文件怎么加密
  • 2017-06-04 IE下ocx控件中的消息映射问题
  • 2017-06-04 如何知道MSN的用户语音聊天的各种状态,响铃,通话等等???
  • 2017-06-05 线程传递消息有时出现乱码
  • 2017-06-05 mfc扩展dll一定要运行在安装了VS的电脑上吗
  • 2017-06-04 同志们,我想一加入activex控件,测试容器就将我的对话框显示出来(像ondraw的椭圆),而不是通过方法调用才弹出来,但下面方法不行,有
  • 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
  • 微信公众号

最近更新的内容

    • 请问vc中怎么让系统等待一段时间再执行下面的代码??
    • 为什么我的ATLCOM控件中的输入框不能响应回车键?盼解答
    • BHO开发中遇到的一些疑惑
    • 结束掉3721的进程
    • 为什么说找不到psapih??是不是要下载?
    • 把一个程序窗口中的文本复制到另一个程序的窗口中
    • CCriticalSection::lock和CCriticalSection::unlock返回值的意义
    • VC9调用ActiveXDll的问题
    • ocx控件怎么更新版本?
    • com组建调用IE控件异常的问题

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

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