Как решить BSTR утечка памяти com объекта? - PullRequest
0 голосов
/ 10 июля 2011

вначале извините за мой плохой английский.

Я использую Microsoft ISA Server 2006 c ++ SDK для программирования.

Я получаю информацию с сервера Isa с помощью функций isa, которым требуется переменная BSTR, но это приводит к утечке памяти, а использование ::sysFreeString(BSTR) не устраняет утечку памяти. что я должен сделать?

FPCLib::IFPCLogEntryPtr::get_ClientIP(BSTR *);

1 Ответ

1 голос
/ 10 июля 2011

По умолчанию значения COM BSTR кэшируются библиотекой времени выполнения, которая со временем может создавать видимость утечки.Даже несмотря на то, что в вашем собственном коде нет утечек, размер кучи по-прежнему увеличивается - очень раздражает.

Если вы хотите исключить это как причину, вы можете отключить использование SetOaNoCache API .

Если после этого у вас все еще есть явная утечка, вы можете отследить ее, используя Process Dumper , чтобы получить последовательные снимки, а затем снова запустить их для сравнения.Если это возможно, запустите его для своей сборки Debug, так как в этом случае стеки вызовов легче расшифровать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...