<Return[JKL]><Top>

LocalFree

Declare Function Api_LocalFree& Lib "kernel32" Alias "LocalFree" (ByVal hMem&)

Declare Function LocalFree Lib "kernel32" Alias "LocalFree" (ByVal hMem As Long) As Long

指定されたローカルメモリオブジェクトを解放し、そのハンドルを無効にする。
※この関数は、16 ビット版 Windows との互換性のために提供されている。

パラメータ
hMem
    ローカルメモリオブジェクトのハンドルを指定する。LocalAlloc 関数または LocalReAlloc 関数が返したハンドルを使う。

戻り値
    関数が成功すると、NULL が返る。
    関数が失敗すると、ローカルメモリオブジェクトのハンドルと同じ値が返る。拡張エラー情報を取得するには、GetLastError 関数を使う。

解説
    メモリがすでに解放されている状態で、プロセスがそのメモリを検討または変更しようとすると、ヒープが壊れたり、アクセス違反の例外

    (EXCEPTION_ACCESS_VIOLATION)が発生することがある。
    hMem パラメータが NULL の場合、LocalFree 関数はこのパラメータを無視し、NULL を返す。
    LocalFree 関数は、ロック済みのメモリオブジェクトも解放する。ロック済みのメモリオブジェクトでは、ロックカウントが 0 より大きくなってい

    る。LocalLock 関数はローカルメモリオブジェクトをロックし、ロックカウントをインクリメント( 値を 1 増やす)する。LocalUnlock 関数はその

    オブジェクトをロック解除し、ロックカウントをデクリメント( 値を 1 減らす)する。ローカルメモリオブジェクトのロックカウントを取得するには、

    LocalFlags 関数を使う。
    アプリケーションがデバッグバージョンのシステムで実行されている場合、LocalFree 関数は、ロック済みオブジェクトを現在解放していること

    を示すメッセージを発行する。アプリケーションのデバッグを行っている場合、LocalFree 関数はロック済みオブジェクトを解放する直前のブレ

    ークポイントに入る。その結果、それが意図している動作かどうかを検証し、その後実行を続行することができる。