delphi - 如何在 Delphi 7 中释放 Windows 句柄指针?

标签 delphi memory-leaks

我正在使用第三方工具,该工具通过窗口句柄指向内存中的图像。

您负责释放句柄的工具统计信息。那么如何在 Delphi 7 中释放该句柄呢?句柄的数据类型是 LONG

最佳答案

如果该工具告诉您您负责清理,那么它也应该告诉您应该使用什么。仔细查看文档。

您需要更具体地说明您拥有哪种类型的句柄。没有一个函数可以释放所有类型的句柄。

大多数内核对象(互斥对象、线程、进程、文件、管道、事件等)使用 CloseHandle .

如果您确实有图像句柄,例如 HBitmapHIcon,那么您可以使用 DeleteObject 来免费。 .

窗口句柄 (HWND) 随 DestroyWindow 一起发布.

您可能有一个内存句柄,由 GlobalAlloc 返回;使用GlobalFree为此。

它可能根本不是 Windows 句柄。它可能是特定于您的工具 API 的句柄,需要特定于 API 的函数来销毁它。

底线是你需要知道你拥有什么。

关于delphi - 如何在 Delphi 7 中释放 Windows 句柄指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3042327/

相关文章:

iphone - stringWithString 内存泄漏

caching - PHPExcel 内存耗尽

javascript - Firefox 28(仅Win7)因JS内存泄漏而崩溃

delphi - IEnumerable.GetEnumerator() 在 Delphi 6 中返回 IEnumVariant

delphi - 动态数组变量未显示在局部变量调试窗口中

将 C "FOR"循环转换为 Delphi

macos - Delphi REST mac 内存泄漏

json - 如何正确地将非字符串值添加到 TJSONObject?

delphi - FireDac 按需轮询记录并在 StringGrid 中显示它们

memory-leaks - Java内存转储问题