Форум программистов, компьютерный форум, киберфорум
OpenGL
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
1 / 1 / 0
Регистрация: 28.08.2014
Сообщений: 93

GlewInit() возвращает 1

01.08.2015, 22:34. Показов 3275. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, товарищи. Помогите разобраться пожалуйста. Решил поставить своё приложение на рельсы VBO, но вот функция инициализации GLEW почему-то возвращает 1, что свидетельствует об ошибке. Предоставлю весь код, который нужен для поиска решения. Помогите пожалуйста, спасибо.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.08.2015, 22:34
Ответы с готовыми решениями:

'glewInit': identifier not found
Всем добрый вечер! Не знаю в тот ли раздел обратилась.. В общем, такая беда. Иду по урокам от open.gl и после подключения GLEW и...

Создать функцию, которая возвращает массив в обратном порядке. Именно возвращает
Не могу никак создать функцию.

Метод без проблем возвращает строку, но не возвращает класс
Здравствуйте! Уже сутки бьюсь с проблемой и не пойму вообще почему она возникла. Есть WCF-сервер и -клиент. На сервере есть 2 метода,...

10
5 / 5 / 4
Регистрация: 18.11.2014
Сообщений: 81
02.08.2015, 21:29
C++
1
2
3
4
5
GLenum res = glewInit();
    if (res != GLEW_OK) {
      fprintf(stderr, "Error: '%s'\n", glewGetErrorString(res));
      return 1;
    }
0
1 / 1 / 0
Регистрация: 28.08.2014
Сообщений: 93
02.08.2015, 21:31  [ТС]
Пробовал, выдаёт: 1.9.0
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
02.08.2015, 21:32
lenchis001, перед инициализацией GLEW необходимо создать контекст OpenGL и сделать его текущим.
0
1 / 1 / 0
Регистрация: 28.08.2014
Сообщений: 93
02.08.2015, 21:34  [ТС]
Я так и делаю, вот инициализация:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
// Обновить окно (пересоздать)
        void UpdateHandle(Panel ^parent)
        {
            if (Handle != IntPtr::Zero) DestroyHandle();
            // параметры окна
            CreateParams ^cp = gcnew CreateParams;
            cp->X = 0;
            cp->Y = 0;//Начальное положение
            cp->Width = parent->ClientSize.Width;
            cp->Height = parent->ClientSize.Height;//Размеры окна
 
            cp->Parent = parent->Handle;//Устанавливаем родителя
            cp->Style = WS_CHILD | WS_VISIBLE;//Задаём стиль отображения (дочернее окно, видимое окно)
 
                                              //Найдём отношение проекции
            XY = (double)parent->Size.Width / parent->Size.Height;
 
            // создаем окно
            CreateHandle(cp);
 
            /*
            Создание контекста OpenGL
            */
 
            // удаляем старый контекст
            if (_glRC != nullptr) ::wglDeleteContext(_glRC);
 
            // задаём дескриптор окна
            HWND wnd = (HWND)Handle.ToPointer();
 
            // контекст устройства окна
            HDC dc = GetDC(wnd);
 
            // установка формата пикселей
            PIXELFORMATDESCRIPTOR pfd = {
                sizeof(PIXELFORMATDESCRIPTOR),
                1,
                PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER,
                PFD_TYPE_RGBA, 24 };
 
            pfd.cDepthBits = 32;
            pfd.iLayerType = PFD_MAIN_PLANE;
 
            // подбор подходящего формата
            int pixelFormat = ::ChoosePixelFormat(dc, &pfd);
            ::SetPixelFormat(dc, pixelFormat, &pfd);
 
            // создание контекста OpenGL
            _glRC = ::wglCreateContext(dc);
 
            // очистка
 
            ::ReleaseDC(wnd, dc);
        }
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
02.08.2015, 21:42
Где wglMakeCurrent? Где glewInit?
0
1 / 1 / 0
Регистрация: 28.08.2014
Сообщений: 93
03.08.2015, 16:48  [ТС]
Я дописал две функции, однако всё равно инициализация не проходит:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
// Обновить окно (пересоздать)
        void UpdateHandle(Panel ^parent)
        {
            if (Handle != IntPtr::Zero) DestroyHandle();
            // параметры окна
            CreateParams ^cp = gcnew CreateParams;
            cp->X = 0;
            cp->Y = 0;//Начальное положение
            cp->Width = parent->ClientSize.Width;
            cp->Height = parent->ClientSize.Height;//Размеры окна
 
            cp->Parent = parent->Handle;//Устанавливаем родителя
            cp->Style = WS_CHILD | WS_VISIBLE;//Задаём стиль отображения (дочернее окно, видимое окно)
 
                                              //Найдём отношение проекции
            XY = (double)parent->Size.Width / parent->Size.Height;
 
            // создаем окно
            CreateHandle(cp);
 
            /*
            Создание контекста OpenGL
            */
 
            // удаляем старый контекст
            if (_glRC != nullptr) ::wglDeleteContext(_glRC);
 
            // задаём дескриптор окна
            HWND wnd = (HWND)Handle.ToPointer();
 
            // контекст устройства окна
            HDC dc = GetDC(wnd);
 
            // установка формата пикселей
            PIXELFORMATDESCRIPTOR pfd = {
                sizeof(PIXELFORMATDESCRIPTOR),
                1,
                PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER,
                PFD_TYPE_RGBA, 24 };
 
            pfd.cDepthBits = 32;
            pfd.iLayerType = PFD_MAIN_PLANE;
 
            // подбор подходящего формата
            int pixelFormat = ::ChoosePixelFormat(dc, &pfd);
            ::SetPixelFormat(dc, pixelFormat, &pfd);
 
            // создание контекста OpenGL
            _glRC = ::wglCreateContext(dc);
            // очистка
            ::ReleaseDC(wnd, dc);
            wglMakeCurrent(dc, _glRC);
            if (glewInit() != GLEW_OK) MessageBox::Show("Инициализация провалена!");
        }
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
03.08.2015, 16:58
Лучший ответ Сообщение было отмечено lenchis001 как решение

Решение

C++
1
2
            ::ReleaseDC(wnd, dc);
            wglMakeCurrent(dc, _glRC);
Ошибка тут.
1
1 / 1 / 0
Регистрация: 28.08.2014
Сообщений: 93
03.08.2015, 17:02  [ТС]
Вы имеете ввиду так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
// Обновить окно (пересоздать)
        void UpdateHandle(Panel ^parent)
        {
            if (Handle != IntPtr::Zero) DestroyHandle();
            // параметры окна
            CreateParams ^cp = gcnew CreateParams;
            cp->X = 0;
            cp->Y = 0;//Начальное положение
            cp->Width = parent->ClientSize.Width;
            cp->Height = parent->ClientSize.Height;//Размеры окна
 
            cp->Parent = parent->Handle;//Устанавливаем родителя
            cp->Style = WS_CHILD | WS_VISIBLE;//Задаём стиль отображения (дочернее окно, видимое окно)
 
                                              //Найдём отношение проекции
            XY = (double)parent->Size.Width / parent->Size.Height;
 
            // создаем окно
            CreateHandle(cp);
 
            /*
            Создание контекста OpenGL
            */
 
            // удаляем старый контекст
            if (_glRC != nullptr) ::wglDeleteContext(_glRC);
 
            // задаём дескриптор окна
            HWND wnd = (HWND)Handle.ToPointer();
 
            // контекст устройства окна
            HDC dc = GetDC(wnd);
 
            // установка формата пикселей
            PIXELFORMATDESCRIPTOR pfd = {
                sizeof(PIXELFORMATDESCRIPTOR),
                1,
                PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER,
                PFD_TYPE_RGBA, 24 };
 
            pfd.cDepthBits = 32;
            pfd.iLayerType = PFD_MAIN_PLANE;
 
            // подбор подходящего формата
            int pixelFormat = ::ChoosePixelFormat(dc, &pfd);
            ::SetPixelFormat(dc, pixelFormat, &pfd);
 
            // создание контекста OpenGL
            _glRC = ::wglCreateContext(dc);
            wglMakeCurrent(dc, _glRC);
            if (glewInit() != GLEW_OK) MessageBox::Show("Инициализация провалена!");
            // очистка
            ::ReleaseDC(wnd, dc);
        }
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
03.08.2015, 17:06
Да, это. Проверять не буду, но мне почему-то кажется что dc нельзя так просто взять и освободить в этом месте. Сделай это в конце программы.
0
1 / 1 / 0
Регистрация: 28.08.2014
Сообщений: 93
03.08.2015, 17:07  [ТС]
Хорошо, я посмотрю что к чему. Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.08.2015, 17:07
Помогаю со студенческими работами здесь

OpenEventLog возвращает 0, GetLastError возвращает 1314 (Недостаточно прав)
Добрый день! В программе используется OpenEventLog, она возвращает нулевой дескриптор, вызванная поле нее функция GetLastError возвращает...

Как вернуть в запросе значение по умолчанию, если SELECT возвращает NULL или ничего не возвращает?
Добрый день! Например я хочу чтобы донное выражение возвращало мне 0 или скажем 1, если результатом выражения rating вернется NULL: ...

mysqli_insert_id не возвращает ID вставленной записи, постоянно возвращает "1".
Есть запрос такой расчитываю через insert_id получить id добавленной книги, но почему-то возвращает результат 1, хотя в бд всё нормально...

Label.getHeight возвращает 0, а Label.getPrefHeight возвращает -1
Не могу получить высоту лейбла. Label label = new Label("message message message message message message message message...

Почему если я задаю IP 127.0.0.1 то bind возвращает 0, а если задаю IP в сети, то bind возвращает -1
IP узнаю через 2IP.ru вот и если задаю полученный IP, то программа вылатает когда выполняется условие if (status == -1) ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru