窗口过程中的静态变量

时间:2013-01-01 09:19:50

标签: c winapi static

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

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

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

}

1 个答案:

答案 0 :(得分:1)

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

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

在这种情况下,你不需要做任何事情来释放“CreateDialog”,你只需要ShowWindow和DestroyWindow。