gpt4 book ai didi

c++ - CreatePen 不会造成内存泄漏?

转载 作者:搜寻专家 更新时间:2023-10-31 00:35:57 27 4
gpt4 key购买 nike

我创建了一个 HPEN 并使用以下代码选择了它:

HPEN hPen = CreatePen(PS_SOLID, 1, RGB(0,0,0));
oldPen = (HPEN)SelectObject(hdc, hPen);

在此之后我画了一些东西并选择了旧的钢笔:

SelectObject(hdc, oldPen);

要查看我使用的内存泄漏:

#define CRTDBG_MAP_ALLOC
#include <crtdbg.h>

/* This in the main function */
_CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );

如果我关闭应用程序,则不会显示内存泄漏。但我认为如果我不使用 DeleteObject() 删除对象,我会发生内存泄漏。

我已经用这个测试了 flag,它起作用了:

int* leak = new int;

所以旗帜不会有问题。你能帮我解决这个问题,或者告诉我更多关于为什么没有显示内存泄漏的信息吗?

谢谢!

最佳答案

CreatePen 是一个 win32 api 函数,它(可能)在 windows 内核中分配一些内存以供绘图时使用。用 new/new[] 分配的内存是由 C 运行时库 分配的,因此它会被 CRT 调试函数捕获。它们专门用于捕获使用 malloc/new/new[] 分配的内存泄漏

关于c++ - CreatePen 不会造成内存泄漏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22813352/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com