c++ - USP10.DLL 中的内存泄漏

标签 c++ .net memory-leaks memory-leak-detector

我在我的一个应用程序(通过 PINVOKE 使用 C++ dll 的 .NET 应用程序)上运行了调试诊断工具 v1.2,它显示了以下警告:

usp10.dll 负责 9.25 MB 的未完成分配。以下是前 2 个内存消耗函数: usp10!MapFullFile+14:9.19 兆字节的未完成分配。 usp10!AllocateCMAPtables+e6:18.50 KB 的未完成分配。

我不知道这个 USP10.DLL 是从哪里来的。 Google 告诉我这是 some service to render unicode-encoded text .我为什么会看到此警告,有什么想法吗?

最佳答案

Usp10.dll 是 Uniscribe 脚本处理器。它处理正确的文本格式,任何将文本输出到屏幕的程序都将依赖于它。 CMap 是一种字体数据结构。您看到它所做的是缓存字体数据,每次需要数据时都从字体文件中检索它太昂贵并且会使文本呈现太慢。

在卸载 DLL 之前,这样的缓存不会被销毁。所以您真正看到的是您工具中的缺陷。它在正常进程清理发生之前过早报告内存泄漏。您应该向供应商提交缺陷报告。

关于c++ - USP10.DLL 中的内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12819488/

相关文章:

c# - 静态值类型字段是否装在 C# 的堆中?

ruby - 从 Rails 3.0 升级到 Rails 3.2(Ruby 1.9.3 + Passenger)后出现巨大的内存泄漏/膨胀

wpf - .net4 中仍然存在内存泄漏 - 将内存 BitmapImage 绑定(bind)到 Image-Source

c++ - 你如何使用 libnl nl_sock?

c++ - FLTK 回调不接受我的函数指针

c# - IntPtr.ToInt32() Marshal.ThrowExceptionForHR() - 查询 GAC

swift - 小小的内存泄漏有多大影响?

c++ - 有人可以帮我启发这个模板吗?

c++ - 如何使数组不重复?

c# - 如何在 C# 中从 StreamReader 获取文本