Last Updated 2002/10/15
Programming Tips Visual C++ API  索 引 
GlobalLockとGlobalFree
2002/10/15

GlobalFree() は,ロックされたメモリオブジェクトを解放する.
(ロックされているメモリハンドルも解放する)
(http://msdn.microsoft.com/library/sdkdoc/winbase/memman_38kl.htm に The GlobalFree function will free a locked memory object. とある)
ロックしたままでもアンロックしてからでも GlobalFree() は問題なく実行可能である.

GlobalUnlock() は,GlobalLock() にて増加したロックカウントを1つ減らす.
ロックカウントが0になるまで移動や廃棄は不可能.

GlobalLock() と GlobalReAlloc() の GMEM_MOVEABLE は意味が異なる.

GlobalAlloc() で GMEM_FIXED(GPTR) を使用して,サイズが変更になった時に GMEM_MOVEABLE にて GlobalReAlloc() すると GlobalLock() は必要ない.
GMEM_MODIFY を使用しなければ一度確保したメモリの属性が GMEM_MOVEABLE で変わることはない.(アドレスが移動する可能性はある)


参照
メモリ管理
メモリ確保
前後のTips
GlobalLockとGlobalFree

DSS ProgrammingTipsCGI Ver2.02