据我的经验(NT),Win32的资源是可以在程序结束时自动释
放的,如MEM和Thread、Process、File等的句柄.但GDI的
对象就比较麻烦的,必须自己释放,如Bitmap和Pen的句柄.
原因吗,是因为Win32对象是系统内核管理的,每个对象都有
引用计数.而GDI对象是一个Service进程管理的,NT似乎没
有维护其引用计数
在95下,好象很多Win32的资源也不能很好地释放.
但是,释放资源总是必要的.因为不可能知道在整个程序运行中
某个资源分配行为要执行多少次.如果其分配的资源没有释放,
当程序运行时间较长时,就可能发生资源不够的情况,从而需要
程序重新启动.好象"江湖"就因为这个原因被骂得狗血喷头.我
想各位不希望步其后尘吧?
所以,在程序发布前用BoundsChecker或MemProof检查一下是
非常必要的.所有需要释放的资源它们都可以监视.而且它们还
可以查出API调用失败而没有进行特殊处理的情况.