C++中用完需要释放掉内存的几个类

时间:2021-09-07 08:43:07

 

  1. BSTR

BSTR bstrXML = NULL;

//用完以后,或者 catch段中

if(bstrXML) ::SysFreeString(result);

  1. VARIANT

VARIANT varFileName;

//用完以后,或者 catch段中

VariantClear(&varFileName);

  1. 支持Release的COM接口,例如:

IXMLDOMDocument *pXMLDom=NULL;

IXMLDOMDocument *pXSLDoc=NULL;

//用完以后,或者 catch段中

SAFE_RELEASE(pXSLDoc);

SAFE_RELEASE(pXMLDom);

同时需要在文件的上面定义SAFE_RELEASE宏:

#define SAFE_RELEASE(p) do { if ((p)) { (p)->Release(); (p) = NULL; } } while(0)