如果用 GDI 或者 GDI+ 绘图, 获得句柄之后 不释放, 会有什么后果?
2个回答
展开全部
看获取句柄的方式了
如果句柄自己创建的,将会有资源泄漏,但是当真个程序退出时,这些未释放的句柄将会由
操作系统释放,这样貌似不释放也没关系是吧?但是如果程序很大或者程序要运行很长时间
的话,那么这些资源将长期得不到释放,程序的运行速率和效能将会严重受损,最终可能导
致程序崩溃甚至OS也崩掉了,所以即使释放掉不再使用的内存不仅是一个很好的习惯,对
程序来说也大有好处。
如果句柄是从某处获得的,这个不不需要释放了,但是有一种情况介于比较特殊,如:
HDC hdc = GetDC(hwnd);
这个dc资源是从hwnd固有的dc中获得的,这句话是说我暂时用一下你的句柄,待会儿还你,
所以到不用的时候要解除使用,而不是delete掉,即ReleaseDC(hdc); 如果不还,程序也将
出现问题。
如果句柄自己创建的,将会有资源泄漏,但是当真个程序退出时,这些未释放的句柄将会由
操作系统释放,这样貌似不释放也没关系是吧?但是如果程序很大或者程序要运行很长时间
的话,那么这些资源将长期得不到释放,程序的运行速率和效能将会严重受损,最终可能导
致程序崩溃甚至OS也崩掉了,所以即使释放掉不再使用的内存不仅是一个很好的习惯,对
程序来说也大有好处。
如果句柄是从某处获得的,这个不不需要释放了,但是有一种情况介于比较特殊,如:
HDC hdc = GetDC(hwnd);
这个dc资源是从hwnd固有的dc中获得的,这句话是说我暂时用一下你的句柄,待会儿还你,
所以到不用的时候要解除使用,而不是delete掉,即ReleaseDC(hdc); 如果不还,程序也将
出现问题。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询