WebService 内存泄漏原因之一

在调试Webservice程序时(vc++,vs2005,ATL方式),调用后总有内存泄漏,刚开始以为是自己的指针分配问题,更改了多种方式没有结果,还是MSDN啊,一小段代码就说明了问题。这个内存是ATL分配的,但需要我们来管理,见红字部分,自己清理一下就好了,真说不清是该感谢微软还是该咒骂他,你的事儿凭什么我来做?

CTranslatorWebServiceT<CSoapSocketClientT<>> *wsObj=new CTranslatorWebServiceT<CSoapSocketClientT<>>();
    CComBSTR hiResult;
    CComBSTR a=m_strIn;
    BSTR *p;   
   
    int nsize;
    HRESULT hr = S_OK;
    CoInitialize(NULL);

    hr=wsObj->getEnCnTwoWayTranslator(a,&p,&nsize);
    if(FAILED(hr)){
        MessageBox(L"调用失败");
    }
    else
    {
        m_strOut+=m_strIn+L"/r/n";
        for(int i=0;i<nsize;i++){
            m_strOut+=CString(p[i])+L"/r/n";
        }
        m_strOut+=L"-----------------/r/n";
        UpdateData(false);
    }
    AtlCleanupArray(p, nsize); //清理由webservice 生成的指针
    free(p);//释放由Webservice 分配的内存

    delete wsObj;
    CoUninitialize();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值