(char*)GlobalAlloc(GPTR, len + 1);
这是我在教程中使用的代码行。我正在读EDITTEXT
。我最想知道GPTR
来自哪里,以及它的用途。它尚未在代码中的任何其他位置定义。
我已基本了解其余部分,但MSDN的解释并不十分清楚。他们这样说:
HGLOBAL WINAPI GlobalAlloc(
__in UINT uFlags,
__in SIZE_T dwBytes
);
有人可以用简明的英语解释GPTR
来自哪里,它是什么,以及它与__in UINT uFlags
的关系?我知道这是一个unsigned int
,但知情就停止了。
提前致谢。
答案 0 :(得分:3)
GPTR是GMEM_FIXED和GMEM_ZEROINIT(OR)的组合。
<强> uFlags 强>
内存分配属性。如果指定为零,则默认值为GMEM_FIXED。除了特别指出的不兼容组合之外,此参数可以是以下一个或多个值。
价值意义
GHND 0x0042合并GMEM_MOVEABLE和GMEM_ZEROINIT。
GMEM_FIXED 0x0000分配固定内存。返回值是指针
GMEM_MOVEABLE 0x0002分配可移动内存。内存块永远不会在物理内存中移动,但可以在默认堆中移动它们。此值不能与GMEM_FIXED结合使用
GMEM_ZEROINIT 0x0040将内存内容初始化为零
GPTR 0x0040合并GMEM FIXED和GMEM_ZEROINIT。
答案 1 :(得分:0)