• 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 > com组件的释放问题~~~高手来看看

com组件的释放问题~~~高手来看看

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

佚名通过本文主要向大家介绍了com组件,com组件是什么,com组件下载,com组件注册,com组件编程等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: com组件的释放问题~~~高手来看看
描述:

一个activex控件,包容了一个串口通讯的组件
activex控件中有两个方法,例如:
MyOpenCom()
MyCloseCom()
MyOpenCom()方法创建串口通讯组建实例,并且打开串口
MyCloseCom()方法释放串口通讯组建,并且关闭串口
我的问题是,怎么释放这个串口通讯组件?可以重复打开,关闭。
我的串口通讯组件是通过智能指针创建的,一个全局类型。
如下:
IIJucidCommPtr jucid_com;//全局
MyOpenCom()中的创建代码
HRESULT hr = jucid_com.CreateInstance(__uuidof(IJucidComm));
下面是调用接口方法打开串口
MyCloseCom()中的撤销代码
jucid_com->Release();
这样编写后有问题,调用MyCloseCom()后不能重复调用MyOpenCom(),出现非法操作,而且我发现调用MyCloseCom()后我的程序的内存占并没有减小多少。
清高手指点谢谢
谢谢各位~~


解决方案1:

up

解决方案2:

InitInstance()中添加 AfxEnableControlContainer();
CoInitialize(NULL);
在ExitInstance()中添加 CoUninitialize();  看看

解决方案3:

那就不要用智能指针,close的时候不要在内部实现Release,客户端调用的时候自己控制记数器的增减。就是自己管理AddRef和Release!

解决方案4:

up~

解决方案5:

写个 管理器
管理器 
1。create 控件
2。维护 comm
4. 控件向管理器申请 comm
5. 控件消耗管理器申请得 comm
6.管理器消耗,根据 comm 引用计数,消耗 comm


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

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

  • COM组件的变量问题?
  • DLL中对进程外的ActiveX/COM组件(EXE形式)的对象实例化问题,DLL内不支持调进程外COM??
  • 怎样将原来不支持COM的mfc类,成为com类
  • MFC实现COM的接口映射的问题。请教高手。急。。
  • COM+组件的注册问题?
  • 关于COM组件的问题
  • com组件全局变量问题
  • COM组件和主程序之间的数据传输问题??
  • MFC中添加服务器组件的注册问题。
  • Com组件使用Recordset的游标问题

相关文章

  • 2017-06-04 线程间传递接口问题
  • 2017-06-04 播放器播放视频时产生临时文件问题
  • 2017-06-04 用ATL做了个IE的BHO,在TOOLBAR里创建了个CComboBoxEx,可无法处理Back,Enter事件
  • 2017-06-05 mfc的dll调用返回后主程序出错,大家帮忙看看
  • 2017-06-04 求助:几个COM的基础问题,谢谢!
  • 2017-06-05 菜鸟问题怎么把自己写的线程函数放到一个类里面
  • 2017-06-05 《COM技术内幕》中聚合的一个疑问
  • 2017-06-05 为什么类型库也需要一个guid并注册?
  • 2017-06-05 用MFC编写的DLL在DELPHI中可以使用吗?
  • 2017-06-05 寻找可动态捕获应用程序调用了那些系统API的应用工具,找到就给分,知道的帮忙啊

文章分类

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

最近更新的内容

    • 请教个问题:如何拖动一个文件夹以及里面的文件?(已经可以拖动一系列文件)
    • VC编写ocx出错????请教高手
    • XP下,能跨进程发送消息吗?
    • 把一个CString变量做为参数传给一个线程A后,当有别的线程改变了这个CString的内容后,线程A处理的CString内容也会改变!如何解决??
    • 在vb中注册MSWINSCKOCX时提示访问注册表错误……
    • 进程监控器,保证程序不死。
    • 自定义的ActiveX控件中的结构体(包含绘图信息),客户使用该控件时如何操作该结构体变量?
    • 可以获取其他进程启动的消息吗?
    • ActiveX容器编程
    • 这个怎么办?

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

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