【发布时间】:2021-08-16 22:12:15
【问题描述】:
这是在 Visual Studio 中的 C++ MFC 应用程序的上下文中。有些窗口使用 Gdiplus。
调用Gdiplus::Font::Clone() 是复制实际的TTF 字体数据,还是只是一个管理它的小类?
我很担心,因为当我创建许多子窗口(按钮、标签等)时,我将指向父级 Gdiplus::Font 的指针传递给子级,而子级会克隆它。我希望底层字体数据只是在一个位置,并且在后台会发生某种引用计数,而不是到处都有这些东西的几十个副本。
所以我尝试了这两种方法,并没有看到内存使用的真正差异,这让我感到惊讶。这似乎有力地证明了 TTF 字体并没有真正被“克隆”,而是一些用于管理它的小型数据类正在被克隆。对吗?
【问题讨论】: