GLEW не работает в Visual Studios 2010

Мое многопроектное решение закрывается, когда я пытаюсь запустить его с помощью glewInit(). Тем не менее, проект прекрасно строится сам по себе. Когда я закомментирую эту строку, решение может запуститься.

Я пишу проект, который является частью большого решения в Visual Studios 2010. В проекте используется сторонняя графическая библиотека под названием coin3d. Я скачал и установил/включил glew, и с этим проблем с компоновкой не возникло, потому что проект будет нормально строиться без каких-либо ошибок. Этот проект не имеет точки входа, созданная им dll просто используется решением. Поэтому я не могу просматривать какие-либо конкретные журналы ошибок во время выполнения. Он только говорит мне, что не может найти dll проекта, когда он терпит неудачу.

Я знаю, что сторонняя графическая библиотека создает контекст opengl, потому что я могу использовать обычный opengl для отображения некоторой геометрии и многого другого на экране. Но как только я запускаю glewInit(), проект не запускается (хотя и собирается). Есть ли способ проверить и распечатать, был ли создан контекст? (Просто чтобы убедиться)

На сайте GLEW написано:

"On Windows, you also need to define the GLEW_STATIC preprocessor token when
 building a static library or executable, and the GLEW_BUILD preprocessor
 token when building a dll"

значит ли это, что нужно просто поместить их в определения препроцессора проекта вот так? определение препроцессора

Я попытался запустить его только с GLEW_BUILD, а не с GLEW_STATIC. Это не имело значения. Есть ли какие-то шаги, которые я пропустил?


person AAB    schedule 31.03.2013    source источник
comment
Я не понимаю, в чем твоя проблема. Вы не можете построить GLEW? Вы создали GLEW, но не можете успешно использовать его? Вы показываете скриншоты проекта; это сам проект GLEW или проект, который вы хотите использовать GLEW?   -  person Nicol Bolas    schedule 31.03.2013
comment
Убедитесь, что glew.h включен ДО gl.h или любых других заголовков OpenGL.   -  person Sir Digby Chicken Caesar    schedule 31.03.2013
comment
@NicolBolas Я думаю, что могу хорошо строить свет. Когда я создаю проект, ошибок нет. То есть как построить glew? Когда я запускаю проект со строкой glewInit(), он не работает. Скриншот проекта, который я хочу напрямую использовать GLEW.   -  person AAB    schedule 31.03.2013
comment
@SirDigbyChickenCaesar Да, я убедился, что включил Glew перед другими openl. На самом деле, я включаю только заголовок glew — он также учитывает заголовок gl.   -  person AAB    schedule 31.03.2013
comment
Вы обязательно добавили glew32.lib к входным данным вашего компоновщика, верно? Если нет, щелкните правой кнопкой мыши свой проект, выберите «Свойства», затем перейдите в «Linker->Input» и добавьте glew32.lib в список «Дополнительные зависимости».   -  person Sir Digby Chicken Caesar    schedule 31.03.2013
comment
@SirDigbyChickenCaesar Да, я убедился, что glew32.lib, OpenGL32.lib и GlU32.lib входят в мои входные данные проекта. Когда я создаю проект, проблем с компоновщиком не возникает. Насколько я могу судить, это проблема со сборкой dll, когда нужно запустить все решение.   -  person AAB    schedule 31.03.2013


Ответы (1)


Есть ли способ проверить и распечатать, был ли создан контекст? (Просто чтобы убедиться)

Вы можете сделать следующее:

if (glewInit() != GLEW_OK) 
{
    fprintf(stderr, "Failed to initialize GLEW\n");
    return -1;
}
person Neophyte    schedule 27.04.2013