我在对话框的窗口过程中创建了一个静态变量。关闭此对话框(但应用程序仍在运行)时,是否删除了静态变量hwndChildDialog
并且其内存地址是空闲的?如果没有,我应该如何干净?
INT_PTR CALLBACK Dialog_Preference_Proc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
static HWND hwndChildDialog = CreateDialog(...);
}
答案 0 :(得分:1)
C中的static
关键字在“静态内存”的某个位置创建变量,这意味着:变量的地址永远不会在程序的生命周期内发生变化,它在内存中的位置是“静态的” (因此关键字)。因此,无论何时或从何处访问变量:它始终是它的相同实例。
它的内存地址不会被释放。
在这种情况下,你不需要做任何事情来释放“CreateDialog”,你只需要ShowWindow和DestroyWindow。