Function Reference

_MemGlobalAlloc

指定したバイト数をヒープから割り当てます。

#Include <Memory.au3>
_MemGlobalAlloc($iBytes[, $iFlags = 0])

 

パラメータ

$iBytes 割り当てるバイト数。このパラメータがゼロで$iFlagsパラメータが$GMEM_MOVEABLEの場合、 この関数は破棄マークのついたメモリオブジェクトのハンドルを返します。
$iFlags [オプション]メモリ割り当て属性:
$GMEM_FIXED - 固定メモリを割り当てます。返し値はポインタです。
$GMEM_MOVEABLE - 移動可能メモリを割り当てます。メモリブロックは物理メモリで移動することはありませんが、デフォルトヒープ内で は移動することができます。返し値はメモリオブジェクトのハンドルです。ハンドルをポインタに変換するには_MemGlobalLock関数を使用します。この値を$GMEM_FIXEDと組み合わせて使うことはできません。
$GMEM_ZEROINIT - メモリの内容をゼロで初期化します。
$GHND - $GMEM_MOVEABLEと$GMEM_ZEROINITの組み合わせ
$GPTR - $GMEM_FIXEDと$GMEM_ZEROINITの組み合わせ

 

返し値

成功: 新しく割り当てられたメモリオブジェクトのハンドル
失敗: 0

 

注意

Windowsのメモリ管理ではローカルヒープとグローバルヒープの区別がありません。 この関数が成功した場合、少なくとも要求しただけのメモリ量が割り当てられます。実際の割り当て量が要求量よりも多い場合、プロセスはその全体を使用することが可能です。実際の割り当てバイト数を知るには_MemGlobalSize関数を使用してください。ヒープに割り当て要求を満足させるだけの十分な空き領域がない場合、この関数はNULLを返します。
この関数によって割り当てられるメモリは8バイト境界上に配置されていることが保証されています。 動的に生成されるコードを実行するためにはメモリ割り当てに_MemVirtualAlloc関数を、$PAGE_EXECUTEアクセス許可に_Mem_VirtualProtect関数を使用してください。
メモリを解放するには_MemGlobalFree関数を使用してください。

 

関連

_MemGlobalLock, _MemGlobalSize, _MemVirtualAlloc, _MemGlobalFree

 

こちらも参照

MSDNライブラリでGlobalAllocを検索して下さい。