分配和释放 BSTR 的内存
分配和释放 BSTR 的内存
一般情况下,分配和释放分配给 BSTR 的内存的规则如下:
- 当调用进来一个需要 BSTR 参数的函数时,必须在调用之前为 BSTR 分配内存,并且在完成操作之后将其释放。例如:
复制
HRESULT IWebBrowser2::put_StatusText( BSTR bstr );// shows using the Win32 function // to allocate memory for the string: BSTR bstrStatus = ::SysAllocString( L"Some text" ); if (bstrStatus == NULL)return E_OUTOFMEMORY;pBrowser->put_StatusText( bstrStatus ); // Free the string: ::SysFreeString( bstrStatus ); //...
- 当调用进来一个返回 BSTR 的函数时,必须自己来释放字符串。例如:
复制
HRESULT IWebBrowser2::get_StatusText( BSTR FAR* pbstr ); //... BSTR bstrStatus; pBrowser->get_StatusText( &bstrStatus );// shows using the Win32 function // to freee the memory for the string: ::SysFreeString( bstrStatus );
- 当实现返回 BSTR 的函数时,请分配字符串,但不要释放它。接收函数会释放内存。例如:
复制
// Example shows using MFC's // CString::AllocSysString//... HRESULT CMyClass::get_StatusText( BSTR * pbstr ) {try{//m_str is a CString in your class*pbstr = m_str.AllocSysString( );}catch (...){return E_OUTOFMEMORY;}// The client is now responsible for freeing pbstr.js调用ocx里的方法时,ocx里的方法不需要释放 return( S_OK ); } //...
转载于:https://www.cnblogs.com/andyliu1988/p/6093930.html
分配和释放 BSTR 的内存相关推荐
- C/C++动态二维数组的内存分配和释放
C语言: 1 //二维数组动态数组分配和释放 2 //数组指针的内存分配和释放 3 //方法一 4 char (*a)[N];//指向数组的指针 5 a = (char (*)[N])malloc(s ...
- 【C 语言】结构体 ( 结构体中嵌套一级指针 | 分配内存时先 为结构体分配内存 然后再为指针分配内存 | 释放内存时先释放 指针成员内存 然后再释放结构头内存 )
文章目录 一.结构体中嵌套一级指针 1.声明 结构体类型 2.为 结构体 变量分配内存 ( 分配内存时先 为结构体分配内存 然后再为指针分配内存 ) 3.释放结构体内存 ( 释放内存时先释放 指针成员 ...
- 利用二叉树的思想来实现分配和释放内存方法
虽然大部分系统都有提供内存动态分配和释放函数(即C语言中的malloc和free函数),但是在嵌入式开发中由于系统的限制往往需要自己来实现内存管理,如在有些平台上可动态申请的最大空间不能满足程序设计的 ...
- 如何简化临时内存的分配与释放
描述:在编制 C++ 程序时,最常遇到的一个令人恼火的问题便是临时资源的分配与释放问题, 由于程序的逻辑关系通常很复杂,引发异常的可能性也很多,为了妥善处理运行时异常, 我们不得不在可能引发异常的任何 ...
- c语言内存分配与释放 不同类别变量的内存分配和释放的区别
1.不同变量使用内存的区别 静态存储类别的变量:内存数量在编译时确定,程序开始执行时创建,程序结束时销毁.(static.const) 自动存储类别的变量:程序进入变量定义所在块时存在,离开块时销毁. ...
- C++/C--动态二维数组的内存分配与释放【转载】
1 C语言_二维数组动态数组分配和释放 1.1 数组指针的内存分配和释放 //方法一 char (*a)[N];//指向数组的指针 a = (char (*)[N])malloc(sizeof(cha ...
- FFmpeg源代码简单分析:内存的分配和释放(av_malloc()、av_free()等)
===================================================== FFmpeg的库函数源代码分析文章列表: [架构图] FFmpeg源代码结构图 - 解码 F ...
- java怎么释放分配的内存,linux 内存的分配和释放,linux分配释放
linux 内存的分配和释放,linux分配释放 了解内存分配机制(共享映射与请求分页) 通过 pmap 命令,可以获取用户进程逻辑地址空间中映射的内存信息: pmap -x $pid 其中 -x 表 ...
- C语言中多维数组的内存分配和释放(malloc与free)(转)
C语言中多维数组的内存分配和释放(malloc与free)(转) 写代码的时候会碰到多维数组的内存分配和释放问题,在分配和释放过程中很容易出现错误.下面贴上一些示例代码,以供参考. 如果要给二维数组( ...
最新文章
- eventEmitter3源码分析与学习
- Java Review - LinkedList源码解读
- 6、HTML有序列表+无序列表+定义列表
- Boost:BOOST_VERIFY扩展的用法测试程序
- hofstede六个维度指数指标_五张图表 一看便知50指数基金如何选?
- leetcode面试题 10.03. 搜索旋转数组(二分法)
- 【Hihocoder - offer编程练习赛93 套题题解】交错01串(贪心,暴力)方格矩阵高度(模拟)数对(STLmultiset)修整土地(网络流)
- python实现搜索之二分查找
- java应用程序多态_java – 多态和n层应用程序
- Linux 基础知识系列第一篇
- javascript 设计模式之单例模式
- python使用有道翻译API翻译
- 分布式系统关注点——如何去实施「负载均衡」?
- python3下载url图片假死_利用Python 向FTP 上传图片,程序假死?
- Linux,Centos下 Tomcat8 修改jvm内存配置的新方法
- 三极管工作原理分析!精辟、透彻
- mysql存储过程出参和入参_数据库mysql存储中的入参出参理解
- Red Hat 镜像下载
- 【Python】实现给小仙女定时推送消息
- 手机网络游戏 一座尚待挖掘的金矿