问题:
经常看到OpenGL中的视场设置中有m_pDC->GetSafeHdc()这句话,我就想了想为甚要这样写呢?看了OpenGL和Vc技术内幕后,我终于好想知道了为什么。
解答:
首先从 OpenGL开始,因为每个OpenGL应用程序必须有一个渲染描述表RC,而必须在会之前它应该是当前得到。渲染描述表是OpenGL输出与Windows设备描述表联系的机制。而对于GDI C++对象返回的指针的有效期是临时的,所以不能将指针保存为类成员,而应该借助GetSafeHdc()将它转化为Windows的句柄。