在沙盒上一个内存泄漏的第三方DLL

sum*_*ame 2 c++ memory-leaks memory-management opencascade

我正在寻找一种方法来治愈至少我必须使用的漏洞DLL的症状.虽然库(OpenCascade)声称提供了一个内存管理器,但我还是无法释放它分配的任何内存.

我至少希望将这个模块的调用放在"沙箱"中,以便在OCC模块甚至不再运行时保持我的应用程序不会丢失内存.

我的问题是:虽然我意识到这将是一个UGLY HACK(TM)这样做,是否可以预先分配一段内存供图书馆专门使用,或者围绕它构建某种沙盒以便我可以跟踪他们使用的内存区域,以便在我完成时自行释放它们?

或者那是丑陋的黑客,我应该尝试解决问题呢?

sha*_*oth 6

唯一可靠的方法是将库的使用分成专用的过程.您将启动该过程,将数据和参数传递给它,运行库代码,检索结果.一旦确定不再容许内存消耗,就可以重新启动该过程.