为什么 DestroyWindow() 不释放我的代码中的内存?

Bro*_*mer 0 c++ windows handle

这是我的代码:

#include <windows.h>
#include <iostream>
using namespace std;

int main(void) {
    cin.get();    //MEMORY SNAP
    HWND win = CreateWindow(
        "static",
        NULL,
        WS_CHILD | WS_VISIBLE | SS_BITMAP | WS_DISABLED,
        NULL,
        NULL,
        NULL,
        NULL,
        GetConsoleWindow(),
        (HMENU)0,
        GetModuleHandle(0),
        NULL
        );
    cin.get();    //MEMORY SNAP
    DestroyWindow(win);
    cin.get();    //MEMORY SNAP
}
Run Code Online (Sandbox Code Playgroud)

基本上我只是创建一个窗口然后销毁它。所以窗口分配的所有内存都应该被释放,但我的内存看起来像这样 - > http://oi67.tinypic.com/2rwrsxc.jpg 它不会被完全删除,我不知道为什么。

如果你能帮我解决这个问题,我会非常高兴。


图片来自链接:

在此输入图像描述

MSa*_*ers 5

您正在查看两个不同的数字。DestroyWindow释放内存,但不直接返回操作系统。它仍然可供您的程序使用。实际上,这意味着下一次 CreateWindow调用不会增加内存消耗,因为它会回收内存。