• 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 > CoCreateInstance内存问题

CoCreateInstance内存问题

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

佚名通过本文主要向大家介绍了cocreateinstance,cocreateinstance失败,cocreateinstanceex,c cocreateinstance,cocreateinstance函数等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: CoCreateInstance 内存问题
描述:

新键一个类,里边使用了CoCreateInstance函数
在程序运行时控制这个类的new(调用了CoCreateInstance),delete(释放了CoCreateInstance中输出参数的空间,使用release).使用任务管理器观察程序内存分配情况,发现,每调用一次CoCreateInstance多分配4k的内存,而调用delete后,这个4k并没有释放。这样不停调用,所占内存越来越大。
CoInitialize(NULL);和CoUninitialize();调用和释放也有这样的问题
请问应该如何释放这些内存????????


解决方案1:

从你使用DirextXShow的过程来看,没有错误,用CoCreateInstance和CoGetClassObject+CreateInstance的内部调用过程是一样的,我觉得只要使用完以后Release了就可以了(书上讲得,我也不知道对不对!),至于你说的内存增加的问题,可能如yinzhaohui(一切努力)所说,,,我没有说的了。。。。

解决方案2:

不要看任务管理器显示的某应用程序的内程使用情况,很不可靠的,因为它给操作系统的内存管理有关系,如你使用了一个new操作建立了4k的空间,再使用delete删除这4k的空是,可能任务管理中的内程还是没有变,因为你使用new中的空间是建立在进程堆中,而很我是由操作系统管理的,所以并不是很准确,但是一点不会无止的增加上去到系统内存用完你可以试试使用循环不断这相操作看内存是否会用完

解决方案3:

是系统有4K内存没有释放,还是你自己写得类里有4k内存没有释放?你是怎么知道有4k内存没释放的?
这也可能和dshow有关系,不用dshow,试试看其它的COM对象.

解决方案4:

调用
CoFreeUnusedLibraries试试

解决方案5:

友情UP

解决方案6:

CoGetClassObject(rclsid, dwClsContext, NULL, IID_IClassFactory, &pCF); 
hresult = pCF->CreateInstance(pUnkOuter, riid, ppvObj) 
pCF->Release();


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

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

  • CoCreateInstance和CoCreateInstanceEx的区别??
  • 抓狂!看了几天了,CoCreateInstance总是出错!!!!救命啊!
  • 请教CoCreateInstanceEx产生E_ACCESSDENIED的原因
  • CoCreateInstance的内部实现问题??
  • 在DEV-CPP中编译建立快捷方式代码出现incompatibletypeforargument1of`CoCreateInstance'
  • 用dll的COM除了cocreateinstance能不能就当普通DLL用loadlibrary调用。
  • CoCreateInstanceEx问题
  • CoCreateInstance调用成功,CoGetClassObject调用失败,为什么?
  • CoCreateInstance调用出错,帮看看!
  • CoCreateInstance的问题

相关文章

  • 2017-06-05 isapi添加数据库支持的问题
  • 2017-06-05 十万火急,关于键盘模拟输入的问题!!!!!
  • 2017-06-04 MFC写的ocx在Delphi3下的灾难性故障问题?
  • 2017-06-05 非vc程序员问钩子
  • 2017-06-05 在一个ATL工程中,定义了两个类,在另一个类中怎样创建一个类的实例,并且这个类中的一个事件以这个类作为参数类型?
  • 2017-06-04 DCOM中的dllhost????
  • 2017-06-04 如何获取IPersistStorage接口?
  • 2017-06-05 请问各位大虾,有没免费的软件可以监测我本机有哪些注册控件
  • 2017-06-05 为什么我的ocx空间在IE8下一安装就出异常呢!
  • 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
  • 微信公众号

最近更新的内容

    • 无法定位动态连接库的问题
    • 如何写程序扫描系统补丁
    • 关于VB下写COM+的类初始化的问题
    • 请教一个ATL中正则表达式匹配的问题,多谢了!!
    • 在没有安装vc的机器上使用MSCOMM32OCX需要那些库支持?
    • MFCactiveX开发,EVENT_CUSTOM_ID宏什么时能用到?
    • atl服务中访问HKEY_CLASSES_ROOT键
    • 关于内存DC画图的一些问题
    • 问大家一个关于DLL文件加载的问题,急
    • ATL控件中怎样得到和设置一个汉字字符串的高度和宽度

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

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