• 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中内存分配出错,望指教!等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: ATL中内存分配出错,望指教!
描述:

目的:在客户端传递一个long**指针的指针,在COM组件内分配内存,然后客户端使用并负责释放。
方法:用ATL写的COM组件方法如下
IDL定义:
HRESULT GetList([in]long nSize,[out]long** pResult);
C++代码:
STDMETHODIMP CTestTypes::GetList(long nSize, long **pResult)
{
*pResult = reinterpret_cast<long*>(CoTaskMemAlloc(nSize*sizeof
                    (long)));
if( *pResult=NULL )
return E_OUTOFMEMORY;
return S_OK;
}
客户端:
long* ptrCOMMemory;
HRESULT hr = ptrTT->GetList(10,&ptrCOMMemory);
if( FAILED(hr) )
{
    ErrorMessage(hr);
    return -2;
}
for( int k=0; k<10; k++ )
{
    *ptrCOMMemory = k;            //
    cout << *ptrCOMMemory << endl;
    ptrCOMMemory++;
}
CoTaskMemFree(ptrCOMMemory);
现在问题处在,在COM内内存分配正确,可返回客户端后,ptrCOMMemory就变成0了?自然随后的赋值操作就错了,可why?
long** pVal声明为[out]不对吗?还是其他什么原因?望指教!


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

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

  • ATL中内存分配出错,望指教!

相关文章

  • 2017-06-05 有没有把硬盘当内存来用的方法?
  • 2017-06-05 怎么在线程外结束AfxBeginThread开启的线程?
  • 2017-06-05 小东西,测试一下~
  • 2017-06-05 用postthreadmessage送消息为什么会导致消息中数据的改变?(急!在线等)
  • 2017-06-04 VC60操作Excel表,打开excel失败。。。
  • 2017-06-05 关于右键菜单的一个问题,请指点小弟!!
  • 2017-06-04 有关VC调用surfer的问题
  • 2017-06-04 哪里有关于复合文档技术的专题?
  • 2017-06-04 ATLCOM调用错误
  • 2017-06-04 VS2005控件关联变量的时候怎么和一个属性关联

文章分类

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

最近更新的内容

    • COM初始化,请教高手,能系统介绍一下原理,谢谢了,
    • 谁有可以保存到服务器的DSOFramerActiveX!!!
    • Activex控件测试容器加入windowMideaPlayer控件报错,还有什么办法知道MideaPlayer控件的属性和方法?
    • 请问用ATL写的程序,在win98下面需要些什么文件支持?
    • 如何使用MSChart控件绘制饼图
    • 求高手大大给我看一下。为什么只加进去空白?
    • ATL做的COM组件在那里new一个对象,能够使它能在组件装载后自动实例化
    • 请问在VC70中如何定义枚举类型的常量,?
    • 200分求在全局钩子中使用TIMER!
    • 请教:Atl进程外Exe的问题

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

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