关于SAFEARRAY的几个慨念性问题。

flyingjust 2003-05-21 02:31:37
{
...
BYTE* pBuffer=new BYTE[1024];
...
DWORD dwSize=1024;
BYTE* pbsaf=NULL;
SAFEARRAY* psaf=NULL;
SAFEARRAYBOUND rgsabound[1];
rgsabound[0].lLbound = 0;
rgsabound[0].cElements = dwSize;
psaf = SafeArrayCreate(VT_UI1, 1, rgsabound);
if(SafeArrayAccessData(psaf,(void**)&pbsaf) == NOERROR)
memcpy((LPVOID)pbsaf,(LPVOID)&pBuff,dwSize);
SafeArrayUnaccessData(psaf);
return TRUE;
}

问题:
以上三个指针用不用delete?
psaf
pBuff
pbsaf
...全文
68 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
flyingjust 2003-05-28
  • 打赏
  • 举报
回复
我通过远程调用那么客户端和服务端都有SAFEARRAY的内存块 是不是客户端SafeArrayDestroy(psaf)后代理会自动将服务端的psaf SafeArrayDestroy ?
skybblue 2003-05-27
  • 打赏
  • 举报
回复
最好是在哪边创建的数据区就在哪边释放,不然系统有可能不会释放分配的内存,因为为该内存分配的地址空间在不同区域,如果随意释放,将会造成内存管理混乱。我不知道你的服务器端的代码是不是就是客户端调用的GetArray这个接口函数,如果是,则这个函数中就不能调用
SafeArrayDestroy(psaf)********************???????????????
这一行,因为你把刚分配的内存给释放了。
sunht 2003-05-27
  • 打赏
  • 举报
回复
gzgzgzgz
flyingjust 2003-05-26
  • 打赏
  • 举报
回复
我在服务端生成了一个safearray数组psaf 然后传递给客户端,是在客户端SafeArrayDestroy
还是在服务端SafeArrayDestroy?
服务端
{
...
BYTE* pBuffer=new BYTE[1024];
...
DWORD dwSize=1024;
BYTE* pbsaf=NULL;
SAFEARRAY* psaf=NULL;
SAFEARRAYBOUND rgsabound[1];
rgsabound[0].lLbound = 0;
rgsabound[0].cElements = dwSize;
psaf = SafeArrayCreate(VT_UI1, 1, rgsabound);
if(SafeArrayAccessData(psaf,(void**)&pbsaf) == NOERROR)
memcpy((LPVOID)pbsaf,(LPVOID)&pBuff,dwSize);
SafeArrayUnaccessData(psaf);
SafeArrayDestroy(psaf)********************???????????????

return S_OK;

}

客户端
{
SAFEARRAY* pSafArray;
pCom->GetArray(&pSafArray);
safearraydestroy(pSafArray);????????????????

}
luozheng 2003-05-26
  • 打赏
  • 举报
回复
如果你要把这个psaf在客户端通过com传递到服务器端去后,只要在调用那个com接口方法后,可以马上safearraydestroy。其它的就按taolei做就可以了。
flyingjust 2003-05-26
  • 打赏
  • 举报
回复
我得psaf如果作为参数传出去, 是在客户端SafeArrayDestroy
还是在服务端SafeArrayDestroy
taolei 2003-05-21
  • 打赏
  • 举报
回复
psaf 用 SafeArrayDestroy

pBuffer用delete

pbsaf不用管

3,245

社区成员

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

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