Re: утечка памяти при исп. IHTMLDOMNode::get_nodeName
От: Ivan Россия www.rsdn.ru
Дата: 22.03.04 09:13
Оценка: 8 (1)
Здравствуйте, 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++;
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.