如何在64位Windows中制作OpenGL应用程序?

时间:2009-08-06 02:21:10

标签: c++ winapi opengl visual-studio-2005 64-bit

我的项目在xp32中编译,链接和运行,然后我尝试将其交叉编译为x64,我遇到了很多问题:

  1. 没有原生x64不稳定的OpenGL SDK,所以我链接到什么?
  2. 我看到有人说x64应用程序使用32位opengl dll。我试图在xp64中使用驱动程序运行我编译的64位应用程序到我的视频卡(radeon 4850),我在xp32上使用的相同,我得到了典型错误“bla bla bla,也许重新安装应用程序将解决问题”
  3. 如果我使用视频卡驱动程序如何使其与其他卡一起使用,我应该为每个卡构建一个版本吗? (没意义)。我应该加载一个可用的库dinamicaly吗? (同样没有意义)
  4. 哪个是x64的参考实现?我在哪里可以找到要链接的库?
  5. 我真的迷失了这件事。我做了很多搜索,发现没什么能帮助我理解,直到妈妈。

    那么,路径是什么?我想知道如何制作原生的x64 OpenGL应用程序?

2 个答案:

答案 0 :(得分:35)

64位OpenGL导入库包含在Windows SDK中,并安装到%ProgramFiles%\Microsoft SDKs\Windows\<version>\Lib\x64\OpenGL32.lib。相应的DLL名为opengl32.dll,位于%SystemRoot%\system32。 32位版本也命名为opengl32.dll,位于64位Windows上的%SystemRoot%\syswow64中。

您无法在64位进程中加载​​32位DLL,因此无论您使用32位OpenGL DLL读取有关x64应用程序的内容都是错误的。肯定有一个64位的OpenGL DLL,但它的名字中有“32”,大概是为了让移植更容易。

答案 1 :(得分:0)

32位或64位应用程序的OpenGL静态和动态库OpenGL32.libopengl32.dll随操作系统一起提供,现在分别位于下面列出的Windows目录中。请记住,由于历史原因,32位和64位OpenGL(和glew)库的名称相同。

如果您在Windows中使用Visual Studio,则无需复制opengl32.dllDebug目录中的Release.exeOpenGL32.lib的路径Visual Studio中的{1}} - 仅在PropertiesLinkerInput,然后Additional Dependencies中添加“Opengl32.lib”。

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