Здравствуйте, bezrodnii, Вы писали:
B>int rr=0;
B>BSTR tagName = SysAllocString(L"XXXXX");
B>while( rr <= 100000)
B>{
B> pRootNode_i->get_nodeName(&tagName);
B> rr++;
B>}
B>::SysFreeString(tagName);
B>происходит утечка памяти порядка 5-6 МегаБайт,
Память для [out]-параметров должен осваобождать клиент. Поэтому код нужно исправиьт так:
BSTR tagName = 0;
while( rr <= 100000)
{
pRootNode_i->get_nodeName(&tagName);
rr++;
SysFreeString(tagName);
}
А лучше всего использовать wrapper'ы:
while( rr <= 100000)
{
CComBSTR tagName;
pRootNode_i->get_nodeName(&tagName);
rr++;
}