1

我在对话框的窗口过程中创建了一个静态变量。当这个对话框关闭时(但应用程序仍在运行),静态变量hwndChildDialog是否被删除并且它的内存地址是空闲的?如果没有,我应该以及如何做到这一点?

INT_PTR CALLBACK Dialog_Preference_Proc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)

{
    static HWND hwndChildDialog = CreateDialog(...);

}
4

1 回答 1

1

C中的static关键字在“静态内存”的某个位置创建变量,这意味着:变量的地址在程序的生命周期内永远不会改变,它在内存中的位置是“静态的”(因此是关键字)。因此,无论您何时何地访问该变量:它始终是它的同一个实例。

它的内存地址不会被释放。

在这种情况下,您无需执行任何操作来释放“CreateDialog”,您只需 ShowWindow 和 DestroyWindow。

于 2013-01-01T09:25:51.673 回答