C++ 使用第三方库不要忘记 DeInit

使用 C++ 库时初始化一般会有个 Init 函数, 结束时会要求调用 DeInit 或 UnInit 这类的函数. 有时为了省事会忽略掉 DeInit 的调用, 今天在封装 DLL 对 2000 多个文件调用时出现了问题.

在对 2000 多个文件调用了 DLL 之后, 结果有 1.4G 的内存未释放. 一开始以为是跨 DLL 传字符串内存释放的问题, 结果尝试了各种方法去分配和释放内存. 用了一天的时间没有找到解决方法, 最后偶然加上了 DeInit 方法, 问题就解决了.

为了看下在调用 DeInit 但不释放字符串内存的情况下, 会有多少内存泄露, 在调用端把内存释放的函数去掉了试一下, 结果这样做只有 40MB 内存没释放..

除非注明, 风波竹林 文章均为原创,转载请以链接形式标明本文地址
本文地址: https://blog.fbzl.org/c使用第三方库不要忘记deinit/

发表回复