C++ 如何解决BSTR泄漏内存com对象?

C++ 如何解决BSTR泄漏内存com对象?,c++,visual-c++,C++,Visual C++,起初,我英语不好的借口 我使用微软ISA Server 2006 C++编程SDK .< 我通过需要BSTR变量的Isa函数从Isa服务器获取信息,但是它会导致内存泄漏,而通过使用::sysFreeString(BSTR)它并不能解决内存泄漏问题。 我该怎么办 FPCLib::IFPCLogEntryPtr::get_ClientIP(BSTR *); 默认情况下,COMBSTR值由运行库缓存,这可能会随着时间的推移出现泄漏。即使您自己的代码没有泄漏,堆的大小仍然在增长-非常恼人 如果要排除这

起初,我英语不好的借口

我使用微软ISA Server 2006 C++编程SDK .< 我通过需要BSTR变量的Isa函数从Isa服务器获取信息,但是它会导致内存泄漏,而通过使用

::sysFreeString(BSTR)
它并不能解决内存泄漏问题。 我该怎么办

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

默认情况下,COM
BSTR
值由运行库缓存,这可能会随着时间的推移出现泄漏。即使您自己的代码没有泄漏,堆的大小仍然在增长-非常恼人

如果要排除这一原因,可以使用禁用


如果执行此操作后仍然存在明显的泄漏,则可以使用跟踪它以获取连续快照,然后再次运行它以比较它们。如果可能的话,对您的调试版本运行此命令,因为在这种情况下调用堆栈更容易破译。

建议您发布(缩减)代码您是否使用SysAllocString分配了它?@sam:您应该为我们发布代码以帮助您,但无论如何,请查看,Hth:)