最近搞mfc项目,往一个对话框里面塞GL的显示窗口。
塞是塞进去了,编译出来跑的也挺欢,但是换个机器再编译就出毛病了——GL部分不显示
经过多台机器验证,这不是编译或者dll的问题,完全是显卡的锅
简单来说,显示部分我是这样写的:
void GLView::Draw(){
CView::Draw();
RenderScene();
}
GLView是从CView中派生来的,在mfc中添加GL显示所需,其初始化时已添加这一句:
wglMakeCurrent(m_pDC->GetSafeHdc, m_hRc);
之后就不去管DC,RC了。
但是这样A卡上能跑,N卡上跑不出来!
要这样改,才能在N卡上跑出来
void GLView::Draw(){
CView::Draw();
wglMakeCurrent(m_pDC->GetSafeHdc, m_hRc);
Ren