今天在用MFC写一个数据 挖掘的程序时,有一部分要显示出数据的动态变化,于是调用了pDC,当在DeleteDC的时候报错了,错误 为:winhand.cpp line:128,在网上找了找解决方案,说是把DeleteDC改成 ReleaseDC就行了,试了下,果然通过,下面是对ReleaseDC及 DeleteDC的解析,看到许多人也提到了DeleteObject,那么也顺 便解析一下。
ReleaseDC
由 CreateDC、CreateCopatibleDC 函数创建的设备上下文环境,只 能使用DeleteDC来释放。
DeleteDC
如果一个设备上下文环境 的句柄,是通过调用GetDC得到的,那么应用程序不能删除设备上下文设备,而且还 会报错,像我前面的错误那样,应该用Release函数来释放。
DeleteObject
DeleteObject多是用来删除一个逻辑笔、画笔、字体、位图、区域或者调色板等等, 并且释放所有与该对象有关的系统资源,在对象被删除之后,指定的句柄也就随之消失了。 Deleteobject与SelectObject结合着使用,在 GDI对象使用完之后,释放GDI对象所关联的内存。需要注意的是: CGdiObject类的对象所关联的内存不能够使用Deleteobject函数 来释放。
平时多用 .NET编程,而.NET及JAVA有其内置的“垃圾回 收能力”,C++则没有,这也我是我新近觉得C++迷人的地方之一,可以由程序员自己控制内存的使用情况,自己分配,自己还原,提高程序的效率,也很考究基本功。
1401



被折叠的 条评论
为什么被折叠?



