• 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控件失败,vb com控件,注册com控件,c com控件等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: COM控件的内存分配问题
描述:

我用ATL编写了一个COM控件(进程内或进程外),这个控件有一个方法,将一批数据传出来,请问这批数据的内存有谁了分配。我的做法如下
如:HRESULT GetImage([out] VARIANT *vtImage,[out,retval] VARIANT_BOOL *pbSuccess)
{
     *pbSuccess=VARIANT_FALSE;
      vtImage->vt=VT_UI|VT_ARRAY;
  
      SAFEARRAYBOUND rgsabound[1];
      rgsabound[0].lLbound = 0;
      rgsabound[0].cElements = Image_Size;
      vtImage->parray=::SafeArrayCreate(VT_UI1,1,rgsabound);
      PBYTE pBuffer;
      ::SafeArrayAccessData(pImageFileBuffer->parray,(void**)&pBuffer);
      memcpy(pBuffer,pImageBuffer,Image_Size);
      ::SafeArrayUnaccessData(pImageFileBuffer->parray);
     *pbSuccess=VARIANT_TRUE;
}
我这样写有几个问题,
1:vtImage:到底应该[in],[out],还是[in,out];
2: 我这样做要只要客户用一次,我就要分配内存一次,客户释放内存一次,这样效率很低。我想可不可以客户分配一个大内存,然后调用我的方法,我在方法里使用客户分配的内存,最后有客户释放内存。这样做有一个好处,就是用户反复调用我的方法时,不必反复分配,反复释放。
希望大家讨论


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

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

  • com控件怎么样处理键盘消息,?
  • 在VB中使用COM组件为什么内存会一直增长呢?
  • COM于VB通信多线程连接点的问题急
  • 控件或com在网站设计里应用时的多次调试与多次注册的麻烦
  • 同时调用2个COM控件产生的问题
  • active-x控件与com组件有什么区别吗?
  • 使用mscom控件怎么取得所有com口列表
  • vc中引用com控件出错
  • ATL复合控件支持MFC,它的设计框上添加一个COM控件,该控件与成员变量怎么连接?我的错误该怎么处理?
  • 如何向COM控件传递函数指针以注册回调函数?

相关文章

  • 2017-06-04 ActiveX控件画图问题,急!在线等!!
  • 2017-06-05 如何获得指定盘的卷标名称?
  • 2017-06-04 卖儿买女求答案!解决一定吃大餐!
  • 2017-06-04 关于COM组件中连接ACCESS数据库的问题,高手请进!
  • 2017-06-05 如何扩展office图表?
  • 2017-06-05 如何在VS2010中修改已加载地址
  • 2017-06-04 制作为cab文件(activex,急急急!!!!
  • 2017-06-05 新人求助,大家帮帮忙
  • 2017-06-04 使用了Web浏览器控件后出现的问题!!!求高手帮忙!
  • 2017-06-04 请问如何注销一个com组件

文章分类

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

最近更新的内容

    • 用VC++写一个很简单的IE插件
    • 动态调整OCX中Static控件大小
    • 点精灵的纹理为何是白色?
    • 关于导出类中的构造函数与释构函数的问题
    • ActiveX开发,如何从COleControlModule得到COleControl指针?
    • 菜鸟问题,帮帮看看
    • 如何使用注册文件
    • 请付源代码---小键盘的转换!
    • 请问如何在com+storedprocedure+asp解决分页的问题,谢谢!
    • 有c的基础后学习c++应该注意什么?

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

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