gpt4 book ai didi

c - GDI 泄漏问题

转载 作者:行者123 更新时间:2023-12-02 06:26:12 26 4
gpt4 key购买 nike

我注意到使用任务管理器发现以下代码中有 GDI 泄漏。每次执行此代码时,执行此代码的进程中 GDI 对象的计数都会增加 1,但我似乎找不到问题所在。

任何帮助,将不胜感激。

// create new DC based on current    
HDC hDC = CreateCompatibleDC(GetDC());
// select a bitmap into the new DC and keep the old one
HGDIOBJ hOldObj = SelectObject (hDC,hBM);
// do somthing here --> 100% no leak here
SomeFunction (hDC);
// select the old object back from whence it came and delete whats returned
DeleteObject (SelectObject (hDC,hOldObj));
// delete the DC
DeleteDC(hDC);
// delete the tmp object
DeleteObject (hOldObj);

R M

最佳答案

从评论中复制,我没有把它作为答案,因为我无法测试它,我不确定它是否正确,请测试它。

一般来说,嵌套调用不是一个好主意,即

HDC hDC1 = GetDC(); 
HDC hDC2 = CreateCompatibleDC(hDC1);
..

代替
HDC hDC = CreateCompatibleDC(GetDC()); 

(顺便说一句,在您的代码中,GetDC 返回的 HDC 没有被释放。)

关于c - GDI 泄漏问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/482083/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com