C++ CreatePen没有';不会造成内存泄漏吗?

C++ CreatePen没有';不会造成内存泄漏吗?,c++,winapi,visual-c++,memory-management,memory-leaks,C++,Winapi,Visual C++,Memory Management,Memory Leaks,我创建了一个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 functi

我创建了一个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 );
所以国旗不可能有问题。 你能帮我解决这个问题吗?或者告诉我为什么没有显示mem泄漏


谢谢大家!

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

正如其他人所说,您将无法通过这种方式跟踪GDI泄漏

我个人使用此工具并对此感到满意(如果其他人可以推荐其他工具来追踪GDI泄漏,我将不胜感激)

此外,您还需要在使用完笔后将其删除(
DeleteObject(hPen)


致以最诚挚的问候。

谢谢您提供的信息!我现在将尝试其他工具。
int* leak = new int;