如果我没有在打开的密钥上调用RegCloseKey会发生什么?

问题描述:

在Windows中,如果您在HKEY超出范围之前未调用RegCloseKey,那么打开的HKEY变量会发生什么情况?我没有看到任何错误或警告,也没有发现应用程序关闭时的任何内存泄漏。 MSDN doesn't offer much help,但它听起来像它以某种方式耗尽资源。有谁知道实际发生了什么?如果我没有在打开的密钥上调用RegCloseKey会发生什么?

你孤立了一个句柄,它是一个有限的(确定,这是一个相当大的限制)资源。但是,一旦你的应用程序终止,句柄最终由操作系统释放,所以浪费的资源最终返回到池中。

然而,这是一种糟糕的编程习惯,因为分配一些有限的东西,而不是在完成使用时释放它。

+0

我同意,这是不好的做法,但只是想知道发生了什么,因为我没有在Visual Studio中看到任何反馈。 – bsruth 2009-05-01 18:55:48