首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IntPtr的空闲内存

IntPtr的空闲内存
EN

Stack Overflow用户
提问于 2017-03-21 13:10:07
回答 1查看 1.9K关注 0票数 0

我正在向函数SendMessageTimeout传递一个IntPtr,如下所示。SendMessageTimeout属于user32.dll。

我不知道这个动态链接库是如何将内存分配给作为引用传递的IntPtr,即result

如何释放传递给此函数的IntPtr的内存?

代码语言:javascript
复制
[DllImport("user32")]
public static extern int SendMessageTimeout(
    int hwnd, int msg, int wparam, int lparam, 
    int fuFlags, int uTimeout, IntPtr lpdwResult);       

if (handle > 0 && GetWindowText(handle, Buff, nChars) > 0)
{
    this.log("GetForegroundWindow : " +Buff.ToString());
    foreach (string str in this.titleList)
    {
        if (Buff.ToString().ToLower().Contains(str.ToLower()))
        {
            IntPtr result = IntPtr.Zero;
            if (SendMessageTimeout(handle, 0x0010, 0, 0, 0x0002, 2000, result) != 0) 
                DestroyWindow(handle);

            killed = true;
            break;
        }
    }
}
EN

回答 1

Stack Overflow用户

发布于 2017-03-21 13:25:43

使用完Marshal.FreeHGlobal后,请立即使用它。

您可以使用FreeHGlobal从AllocHGlobal、ReAllocHGlobal或任何等效的非托管API方法分配的全局堆中释放任何内存。

代码语言:javascript
复制
 Marshal.FreeHGlobal(lpdwResult);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42918871

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档