je travaille sur certains OpenGL en C++ dans Visual Studio 2005.OpenGL en C++ - plantages lors de l'exécution
// 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);
Et c'est appel SetPixelFormat où il va bang au cours de l'exécution. Ce qui est agaçant, c'est que ça ne fait que s'écraser sur ma machine, pas sur celle de mon collègue.
J'ai trouvé this answer, qui semble lié, sur stackoverflow, mais soit je ne sais pas quoi faire pour résoudre le problème en utilisant ces informations en C++, ou ce n'est pas le même problème.
J'ai besoin de conseils sur la façon d'implémenter cette solution en C++, ou d'autres solutions potentielles.
Je pense que vous n'avez soumis que la moitié de votre question par accident? – Kosi2801
Oh, beaucoup moins que la moitié, comme il se trouve. – deworde
S'agit-il d'une erreur de lien ou d'un plantage? Ce sont des bêtes différentes. – dirkgently