似乎 DrawFrameControl() 创建了 Font 和 Brush 对象,将它们选择到 dc 中,并且没有删除它们。(根据 BoundsChecker 消息)。有没有人遇到过这样的事情?
cos
问问题
647 次
1 回答
2
我在各种 OS/CRT Dll 中都经历过同样的事情。其中一种模式是
- 我得到一个窗口的 DC(GetDC 或 GetWindowDC),以便执行我喜欢的任何操作(即创建一个兼容的内存 DC)。
- 完成后我释放 DC,即使我没有在其中选择任何 GDI 对象,有时我也会收到 Boundschecher 警告,指出设备上下文中仍有选定的对象。
由于这些警告绝对不在我的代码中,因此我建议对它们持保留态度。一般来说,我所做的是清理所有引用我的代码的 BC 警告。
题外话:BC 抛出了许多开发人员无法在其代码中修复的警告。在 stl 中,您将收到无数警告,但其中大多数是“比较不相关的指针”。这并不意味着 BC 错误地扔了它们。在常规应用程序中“比较不相关的指针”可能是一场灾难,但我认为编写 stl 实现的人知道他们在做什么,并且可能已经检查了这些案例。
于 2008-10-09T11:40:13.433 回答