在下最近在做一个工程,在一个回调函数中(静态函数)调用了一个动态链接库,发生了奇怪的内存泄露问题,我只是运行到工程的主界面为止,根本没执行这个回调函数,而且我也只在回调函数中声明了一个动态链接库中的类实例,动态链接库含有结构体,没用到指针什么的。但是我只要一屏蔽掉动态链接库中的类实例的声明,再重新编译,就不会再有内存泄露了。这是什么原因啊?知道的高手们进来帮帮我,谢谢了!

解决方案 »

  1.   

    我只是声明了一下类实例,没做其他操作,我试过new一个他的指针,再delete掉,仍然出现泄露,动态链接库中的类调用了结构体做为返回值。在非静态函数中调用一切正常,我以前写过很多类似的动态链接库
      

  2.   

    我试过new一个他的指针,再delete掉,仍然出现泄露--那就是类的问题。
      

  3.   

    你还真别说,我也是做了一个完成端口模型的网络DLL,和你一样,根本就没有定义任何变量,结果内存就泄露了,仅仅是include 了它的头文件而已,不知道怎么回事情,老兄,有结果了告诉我一下吧
      

  4.   

    1. 使用boundchecker这个工具来查找一些内存泄露的具体的原因。
    2。使用debug和输出调用堆栈及内存使用情况的方法来输出,查找一下真正的原因。在网上有关于vc内存分配的一个工具,虽然有误报,但确实可以帮助我们来分析问题(visual leak)
      

  5.   

         参考:
        关于DLL工程中存在全局变量可能导致MFC内存泄露误报的原因分析及解决办法