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 に答える