C++ Visual Studio 2013在使用GLEW库时在ntdll.dll中引发异常

C++ Visual Studio 2013在使用GLEW库时在ntdll.dll中引发异常,c++,opengl,visual-studio-2013,glew,ntdll,C++,Opengl,Visual Studio 2013,Glew,Ntdll,我正在使用OpenGL编写一个跨平台的3D引擎。在过去,我使用OpenGL 1进行了一些扩展,它在Windows/Mac/Linux上运行良好。但现在我决定使用OpenGL 3.3版本。切换到OpenGL 3.3导致我的应用程序在启动时失败 问题是,当我选择Win32 build target时,VS使用C:/Windows/SysWOW64文件夹中的库,即64位库。当我选择x64构建目标时,VS使用C:/Windows/System32中的库 我在Windows 8.1 x64上使用Visua

我正在使用OpenGL编写一个跨平台的3D引擎。在过去,我使用OpenGL 1进行了一些扩展,它在Windows/Mac/Linux上运行良好。但现在我决定使用OpenGL 3.3版本。切换到OpenGL 3.3导致我的应用程序在启动时失败

问题是,当我选择Win32 build target时,VS使用C:/Windows/SysWOW64文件夹中的库,即64位库。当我选择x64构建目标时,VS使用C:/Windows/System32中的库

我在Windows 8.1 x64上使用Visual Studio 2013

那么,是Visual Studio bug导致我应该切换到另一个用于Windows构建的IDE,还是Visual Studio OpenGL项目配置有问题

问题是,当我选择Win32 build target时,VS使用C:/Windows/SysWOW64文件夹中的库,即64位库

没有
SysWOW64
包含32位库

当我选择x64构建目标时,VS使用C:/Windows/System32中的库

是的,因为64位库位于
System32

在你问“等等,什么?!什么样的药物让Windows开发者沉醉?”之前,让我告诉你,这有其充分的理由。问题是,许多程序都在某处硬编码了System32路径。当这些程序被重新编译为64位时,这些硬编码路径仍然存在,即使它们是64位的,它们也在System32位置寻找库。这也是为什么OpenGL接口DLL在64位系统上也被命名为
opengl32.DLL

运行32位应用程序时,文件系统名称解析将透明地替换要解析到SysWOW64目录中的路径


因此,在您的问题标题中,您询问了ntdll.dll中的崩溃。那怎么办