ヒープから指定したバイト数を確保する。(LocalAlloc)
LocalAlloc uFlags, uBytes
uFlags : [int] uBytes : [int] 確保するバイト数。この引数が 0 で、かつ uFlags 引数に LMEM_MOVEABLE が指定された場合、関数は破棄済みとマークされたメモリオブジェクトのハンドルを返す。
(プラグイン / モジュール : kernel32.dll)
ヒープから指定したバイト数を確保する。(LocalAlloc) [戻り値] 関数が成功した場合、戻り値は新しく確保されたメモリオブジェクトのハンドルである。関数が失敗した場合、戻り値は NULL である。拡張エラー情報を取得するには GetLastError を呼ぶ。 [備考] Windows のメモリ管理にはローカルヒープとグローバルヒープの区別はない。したがって LocalAlloc と GlobalAlloc は本質的に同一である。可動メモリフラグ LHND、LMEM_MOVABLE、NONZEROLHND は不要なオーバーヘッドを加え、安全に使用するにはロックが必要となる。これらはドキュメントで明示的に使うよう指示されていない限り避けるべきである。新しいアプリケーションは、ドキュメントでローカル関数を使うよう明示的に指示されていない限り、ヒープ関数を使うべきである。例えば、一部の Windows 関数は LocalFree で解放しなければならないメモリを確保する。要求を満たす十分な空き領域がヒープにない場合、LocalAlloc は NULL を返す。NULL はエラーを示すため、仮想アドレスの 0 が確保されることはない。したがって NULL ポインタの使用は容易に検出できる。LocalAlloc が成功した場合、少なくとも要求された量を確保する。確保された量が要求量より大きい場合、プロセスはその全量を使用できる。実際に確保されたバイト数を調べるには LocalSize 関数を使う。メモリを解放するには LocalFree 関数を使う。LocalAlloc で確保したメモリを GlobalFree で解放するのは安全ではない。
| プラグイン / モジュール | kernel32.dll |
| バージョン | 1.0 |
| 作成日 | 2026/04/16 |
| 著作者 | IronHSP / CsWin32 bridge |
| URL | https://github.com/inovia/IronHSP |
| 備考 | Win32 API の kernel32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。 |
| タイプ | 拡張命令 |
| グループ | Win32API |
| 対応環境 |
|
| hs ファイル | hsphelp\win32_kernel32_gen2.hs |