1、今天向客戶演示程序,不巧崩潰了。最后發現是使用了GetDC()后沒有使用ReleaseDC()引起的。
2、最早聽說GetDC()和ReleaseDC()是從前任帶頭碼哥那里聽說的,那時候僅僅用《VC 6.0 應用指南》《深入淺出MFC》
????? 《從入門到精通》等書籍,最多就是有前衛人士從網上下載個代碼、從別處拷貝個代碼過來看看,從來沒聽說過msdn
????? 盡管這樣說,無奈我從來沒有當真過。今天就被自己給碰到了。
3、網上查了查,還有人說的更玄虛:
????? A、::GetDC()和::ReleaseDC()配對不會產生資源泄漏;
????? B、GetDC()和ReleaseDC()配對可能會產生資源泄漏。
????? 唉,寧可信其有,不可信其無啊!跟蹤了一下,發現GetDC()還真不簡單,還是::GetDC()簡單。
4、查查msdn,相關例如以下描寫敘述:
Note that the handle to the DC can only be used by a single thread at any one time.After painting with a common DC, the ReleaseDC function must be called to release the DC. Class and private DCs do not have to be released. ReleaseDC must be called from the same thread that called GetDC. The number of DCs is limited only by available memory.
????? 首先是強調單線程使用。單線程內部配對調用GetDC和Release。DC的數量收可用內存的限制。
標記一下,以免忘記。 唉,不看msdn的人那。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
