localReAlloc 函数 (winbase.h)
更改指定本地内存对象的大小或属性。 大小可以增加或减少。
语法
DECLSPEC_ALLOCATOR HLOCAL LocalReAlloc(
[in] _Frees_ptr_opt_ HLOCAL hMem,
[in] SIZE_T uBytes,
[in] UINT uFlags
);
参数
[in] hMem
要重新分配的本地内存对象的句柄。 此句柄由 LocalAlloc 或 LocalReAlloc 函数返回。
[in] uBytes
内存块的新大小(以字节为单位)。 如果 uFlags 指定 LMEM_MODIFY,则忽略此参数。
[in] uFlags
重新分配选项。 如果指定 了LMEM_MODIFY ,则函数仅在忽略 uBytes 参数 (修改内存对象的属性。) 否则,函数将重新分配内存对象。
可以选择将 LMEM_MODIFY 与以下值组合在一起。
值 | 含义 |
---|---|
|
分配固定或可移动内存。
如果内存是锁定 LMEM_MOVEABLE 内存块或 LMEM_FIXED 内存块,并且未指定此标志,则只能就地重新分配内存。 |
如果此参数未指定 LMEM_MODIFY,则可以使用以下值。
值 | 含义 |
---|---|
|
如果内存对象的大小增大,则会导致其他内存内容初始化为零。 |
返回值
如果函数成功,则返回值是重新分配的内存对象的句柄。
如果函数失败,则返回值为 NULL。 要获得更多的错误信息,请调用 GetLastError。
注解
如果 LocalReAlloc 失败,则不会释放原始内存,并且原始句柄和指针仍然有效。
如果 LocalReAlloc 重新分配固定对象,则返回的句柄值是内存块的第一个字节的地址。 若要访问内存,进程只需将返回值强制转换为指针。
要求
最低受支持的客户端 | Windows XP [桌面应用 | UWP 应用] |
最低受支持的服务器 | Windows Server 2003 [桌面应用 | UWP 应用] |
目标平台 | Windows |
标头 | winbase.h (包括 Windows.h) |
Library | Kernel32.lib |
DLL | Kernel32.dll |