发现内存泄漏,没有办法,只好逐模块试验。最终发现有个类一旦被实例化然后再析构(比如在栈上创建的局部变量)就会产生内存泄漏。看了这个类的构造函数和析构函数,发现根本没有代码(除了构造函数的初始化列表中为几个int型变量赋了初始值)。再看这个类的成员,除了几个int外还有一个std::wstringstream类型的,也就是说我的类包含了一个std::wstringstream的实例。难道std::wstringstream有泄漏??经过一番google后终于真相大白了,
VC8带的STL中的stringstream、fstream等类居然有内存泄漏!!当然微软也提供了解决方案,不过需要修改STL的源码并重新编译
msvcp80.dll 和 msvcr80.dll。懒得搞了,知道不是自己的代码有问题就可以了。以后换STLport算了:)
唉……原来是VC++8的STL有内存泄漏……
最新推荐文章于 2022-10-26 11:28:59 发布