Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我在对话框的窗口过程中创建了一个静态变量。当这个对话框关闭时(但应用程序仍在运行),静态变量hwndChildDialog是否被删除并且它的内存地址是空闲的?如果没有,我应该以及如何做到这一点?
hwndChildDialog
INT_PTR CALLBACK Dialog_Preference_Proc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam) { static HWND hwndChildDialog = CreateDialog(...); }
C中的static关键字在“静态内存”的某个位置创建变量,这意味着:变量的地址在程序的生命周期内永远不会改变,它在内存中的位置是“静态的”(因此是关键字)。因此,无论您何时何地访问该变量:它始终是它的同一个实例。
static
它的内存地址不会被释放。
在这种情况下,您无需执行任何操作来释放“CreateDialog”,您只需 ShowWindow 和 DestroyWindow。