最近开发一个项目用到一个COM组件,COM组件一个函数的声明如下:
对该接口的返回值我是这么使用的
结果在调试状态下发现有内存泄露,经排查才发现是没有释放pResult指向的内存所致。原因是_com_util::ConvertBSTRToString在堆中申请了一块内存并返回该内存指针,因此必须在程序退出前将该内存释放。因此修改代码如下,就没有内存泄露了。
最近开发一个项目用到一个COM组件,COM组件一个函数的声明如下:
对该接口的返回值我是这么使用的
结果在调试状态下发现有内存泄露,经排查才发现是没有释放pResult指向的内存所致。原因是_com_util::ConvertBSTRToString在堆中申请了一块内存并返回该内存指针,因此必须在程序退出前将该内存释放。因此修改代码如下,就没有内存泄露了。