关于BSTR资源释放的问题!

blestrabbit 2003-07-26 01:10:35
写了一个ATL控件,其中一个接口是这样定义的
#include <atlconv.h>

ShowMsg(BSTR msg)
{
USES_CONVERSION;
::MessageBox(NULL, W2A(msg), "Notice", 0);
}
那么要不要释放BSTR类型占用的资源,如果BSTR占用资源的话。
另外,对于BSTR的接口变量,为什么在Client端程序中可以直接用一般的字符串负值,而不要转换成BSTR类型。


...全文
59 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
blestrabbit 2003-07-29
  • 打赏
  • 举报
回复
既然BSTR适用于unicode,但是我在客户端为什么用一般的多字节字符串可以负值?
醉马不肖 2003-07-26
  • 打赏
  • 举报
回复
tong yi
Analyst 2003-07-26
  • 打赏
  • 举报
回复
资源分配的规则是谁分配谁释放,这里的BSTR是调用者分配的,调用者自己会释放,你的函数里没有必要也不能去释放。一般的宽字符串是可以作为BSTR,因为从类型上看是一样的,但是这样做是不安全的,所以最好不要这样做。

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧