я работаю на некоторые OpenGL в C++ в Visual Studio 2005.OpenGL в C++ - Сбои во время выполнения
// SetUpOpenGL sets the pixel format and a rendering
// context then returns the RC
HGLRC COpenGLBaseWnd::SetUpOpenGL(HWND hwnd)
{
static PIXELFORMATDESCRIPTOR pfd =
{
sizeof (PIXELFORMATDESCRIPTOR), // strcut size
1, // Version number
PFD_DRAW_TO_WINDOW | // Flags, draw to a window,
PFD_DOUBLEBUFFER | // enable double buffering
PFD_SUPPORT_OPENGL, // use OpenGL
PFD_TYPE_RGBA, // RGBA pixel values
24, // 24-bit color
0, 0, 0, // RGB bits & shift sizes.
0, 0, 0, // Don't care about them
0, 0, // No alpha buffer info
0, 0, 0, 0, 0, // No accumulation buffer
32, // 32-bit depth buffer
0, // No stencil buffer
0, // No auxiliary buffers
PFD_MAIN_PLANE, // Layer type
0, // Reserved (must be 0)
0, // No layer mask
0, // No visible mask
0 // No damage mask
};
pCDC = pWnd->GetDC();
hDC = pCDC->GetSafeHdc();
PixelFormatID = ChoosePixelFormat(hDC, &pfd);
if (!PixelFormatID)
{
// catch errors here.
// If nMyPixelFormat is zero, then there's
// something wrong... most likely the window's
// style bits are incorrect (in CreateWindow())
// or OpenGl isn't installed on this machine
//printf("ChoosePixelFormat Failed %d\r\n",GetLastError());
abort();
exit(-1);
}
if (pfd.dwFlags & PFD_NEED_PALETTE)
{
//printf("Choosen Pixel Format requires a palette.\r\n");
abort();
exit(-1);
}
SetPixelFormat(hDC, PixelFormatID, &pfd);
И SetPixelFormat вызов, где он идет взрыв во время выполнения. Досадно, что это только на моей машине, но не на моем коллеге.
Я нашел this answer, который выглядит связанным, на stackoverflow, но либо я не знаю, что делать, чтобы исправить проблему, используя эту информацию на C++, или это не та же проблема.
Мне нужен совет о том, как реализовать это решение на C++ или других потенциальных решениях.
Я думаю, что вы представили только половину своего вопроса случайно? – Kosi2801
О, гораздо меньше половины, как выясняется. – deworde
Это ошибка связи или сбой? Они совсем другие звери. – dirkgently