Изучаю OpenGL по этим статьям. Возникли проблемы с построением окна. Сделал все как в первом уроке (ошибок в коде быть не может, ибо код не прописывал ручками, а просто копировал). Компилится без ошибок. Окно строится и тут же пропадает. Хотя выход из окна осуществляется нажатием Esc. Если нужно могу скинуть свой код.
Попробуй эту скачать и запустить:
http://nehe.gamedev.net/data/lessons/vs_net/lesson01.zip
Wiedzmin1270
> (ошибок в коде быть не может, ибо код не прописывал ручками, а просто копировал)
К сожалению копипаст не спасает от ошибок...
Кидай лучше сам проект.
QzR!!!
Тот проект работает как надо. Открыл файл реализации, сравнил. Вроде все тоже самое.
Ну так пройдись с точкой останова, посмотри на какой строчке вылетает. :)
Wiedzmin1270
> ошибок в коде быть не может, ибо код не прописывал ручками
думал также, пока искал ошибку у себя :) В итоге оказалось, что одну строку скопировал дважды, а другую пропустил. Советую ещё раз внимательно сверить свой вариант с исходным текстом и с верно работающим вариантом.
Wiedzmin1270
Ну и что тогда мучиться? Это один в один код первого урока, только с комментариями на английском.
Такая каша конечно. Короче, убрав все приведения LPCWSTR и отрубив юникод выяснил, что дескриптор окна не создаётся, похожа из-за пиксельного формата. Вынеси установку пиксельного формата в отдельную функцию:
Enil SetPixelFormatDC(HDC hDC) { Eint nPixelFormat; PIXELFORMATDESCRIPTOR pfd; memset( &pfd, 0, sizeof( PIXELFORMATDESCRIPTOR)); pfd.nSize = sizeof( PIXELFORMATDESCRIPTOR); pfd.nVersion = 1; pfd.dwFlags = PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER; pfd.iPixelType = PFD_TYPE_RGBA; pfd.cColorBits = 32; pfd.cDepthBits = 16; pfd.cStencilBits = 8; if( !( nPixelFormat = ChoosePixelFormat( hDC, &pfd))) CleanUp( ); if( !SetPixelFormat( hDC, nPixelFormat, &pfd)) CleanUp( ); }
Убери все комменты - они нафиг не нужны в соде создания окна, там и так всё понятно. А вообще, посмотри мой код создания окна - может поможет. Desktop
Тема в архиве.