社区
图形处理/算法
帖子详情
为什么一定要ReleaseDC
frland
2005-07-08 11:40:38
很多文章都说GETDC后一定要RELEASE,否则会有内存泄漏,像下面这样
fun()
{
hdc=GetDC(hwnd);
...........
}
到函数退出时hdc不是自动销毁吗,为什么非要手动Release呢?GDI中还有很多要RELASE的情况,其中的原理希望有大侠帮我点明
...全文
87
2
打赏
收藏
为什么一定要ReleaseDC
很多文章都说GETDC后一定要RELEASE,否则会有内存泄漏,像下面这样 fun() { hdc=GetDC(hwnd); ........... } 到函数退出时hdc不是自动销毁吗,为什么非要手动Release呢?GDI中还有很多要RELASE的情况,其中的原理希望有大侠帮我点明
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jishufenxi
2005-07-09
打赏
举报
回复
你得到的是个设备环境的句柄,而不是设备环境本身,设备环境是由windows系统管理的,函数退出时hdc这个变量本身是销毁了,但是这个设备环境还在,所以需要Release
iamPaulYoung
2005-07-09
打赏
举报
回复
从编程习惯上面来说,如果GetDC了就一定要写和它配对的Release,就像在new了东西之后必须delete一样
而从C++语言本身来说,如果不自己手工Release的话,很多东西都不能自动销毁的,这个还涉及到堆之类的问题
Get
DC
(),
Release
DC
()
用Get
DC
()得到的
DC
,必须调用
Release
DC
()用Create
DC
()创建的
DC
,必须调用Delete
DC
()两者是不能混淆的.一种典型的错误代码如下:C
DC
*p
DC
=Get
DC
();…..//做一些无聊的事…..p
DC
->Delete
DC
();//做了错误的事一般情况下,...
BeginPaint EndPaint 与Get
DC
Release
DC
的区别
<2>BeginPaint 会自动地把无效区域设置为有效区域, BeginPaint 和EndPaint 只能在WM_PAINT消息里面进行调用 ,两者
一定
要成对出现 2. Get
DC
与
Release
DC
<1> Get
DC
可以用在任何需要
DC
的地方, 他...
DC
知识总结
一、 ::Get
DC
与 ::
Release
DC
函数原型: H
DC
Get
DC
(HWND hWnd); int
Release
DC
(HWND hWnd, H
DC
h
DC
);...Get
DC
与
Release
DC
一定
要配对使用,否则Get
DC
没有
Release
DC
会有资源泄露。 Get
DC
获取的设备环境变
vb 内存释放
用New创建的全局对象,在UnLoad函数里
一定
要用Set 对象 = Nothing。 用GetWindow
DC
获得的句柄需要用
Release
DC
释放!一直使用GetWindow
DC
而不释放,经过数万次的运行后,程序就会崩溃。 ...
MFC C++ 中的内存释放问题
使用MFC编程的朋友们都知道...接下来我们做完绘图功能后要调用:
Release
DC
(p
DC
);//释放设备描述表 这样做的目的,可以避免内存泄露。如果您不小心在视频...
图形处理/算法
19,469
社区成员
50,697
社区内容
发帖
与我相关
我的任务
图形处理/算法
VC/MFC 图形处理/算法
复制链接
扫一扫
分享
社区描述
VC/MFC 图形处理/算法
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章