Purify 指向 ole32.dll 中的内存泄漏,同时返回VT 设置为VT_RECORD作为OUT 参数的Variant。我通过从 IDL 生成代理/存根 dll 来使用用户编组。你能建议如何避免这种内存泄漏吗?
IDL 中定义的结构:
{
BSTR m_sFirst;
BSTR m_sSecond;
VARIANT m_vChildStruct; //This member encapsulate a sub structure
SAFEARRAY __RPC_FAR * m_saArray;
}CustomINFO;
结构在变体中的封装:
我正在使用 CoTaskMemAlloc 为结构分配内存并将其封装在 Variant 中,如下所示:
vV->vt = VT_RECORD;
vV->pvRecord = pStruct; //Pointer of sturct
vV->pRecInfo = pRI; //RecordInfo Interface
谢谢
皮卡罗·德·沃西奥