Как сделать OpenGL приложения в 64-битной Windows? - PullRequest
16 голосов
/ 06 августа 2009

Мой проект компилируется, связывается и запускается в xp32, затем я попытался сделать кросс-компиляцию в x64, и у меня возникло много вопросов:

  1. Там нет нативного x64 устанавливаемого OpenGL SDK, поэтому я ссылаюсь на что?
  2. Я видел, как кто-то говорил, что x64-приложения используют 32-битную OpenGL DLL. Я попытался запустить мое скомпилированное 64-битное приложение в xp64 с драйверами для моей видеокарты (radeon 4850), то же самое, что я использую на xp32, и я получил типичную ошибку «бла бла бла, возможно, переустановка вашего приложения решит проблему»
  3. Если я использую драйверы видеокарты, как поддерживать работу с другими картами, нужно ли создавать версию для каждой? (не имеет смысла). Должен ли я загрузить доступную библиотеку динамически? (так же нет смысла)
  4. Какая справочная реализация для x64? где я могу найти ссылки на его библиотеки?

Я действительно потерян по этому вопросу. Я сделал много поисков и не нашел ничего, что помогло бы мне остаться на месте.

Итак, каков путь? Что я хочу знать, чтобы создавать нативные приложения x64 OpenGL?

Ответы [ 2 ]

35 голосов
/ 06 августа 2009

64-битная библиотека импорта OpenGL включена в Windows SDK и устанавливается на %ProgramFiles%\Microsoft SDKs\Windows\<version>\Lib\x64\OpenGL32.lib. Соответствующая DLL-библиотека называется opengl32.dll и находится в %SystemRoot%\system32. 32-разрядная версия также называется opengl32.dll и находится в %SystemRoot%\syswow64 в 64-разрядной Windows.

Вы не можете загрузить 32-битные библиотеки DLL в 64-битном процессе, поэтому все, что вы читали о приложениях x64, использующих 32-битную библиотеку OpenGL, было неверным. Определенно, существует 64-битная библиотека OpenGL, но в названии указано «32», вероятно, для облегчения переноса.

0 голосов
/ 21 мая 2018

Статические и динамические библиотеки OpenGL OpenGL32.lib и opengl32.dll для 32-разрядных или 64-разрядных приложений поставляются с ОС и теперь соответственно находятся в каталогах Windows, перечисленных ниже. Просто помните, что 32-битные и 64-битные библиотеки OpenGL (и glew) названы одинаковыми по историческим причинам.

Если вы используете Visual Studio в Windows, не нужно копировать библиотеку opengl32.dll в каталогах Debug или Release, где находится .exe или путь к OpenGL32.lib в Visual Studio - только добавить "Opengl32.lib" в Properties, Linker, Input, затем Additional Dependencies.

C:\Program Files (x86)\Windows Kits\10\Lib\10.0.14393.0\um\x86
C:\Windows\System32

C:\Program Files (x86)\Windows Kits\10\Lib\10.0.14393.0\um\x64
C:\Windows\SysWOW64
...