我正在制作一个从 3d 场景创建图像的应用程序。 我使用 GLFW 和 GLEW 库。 我想将此应用程序称为网络服务。
我的应用程序在使用 .exe 文件启动时运行良好,但在由 IIS7 启动时运行良好。它在调用 glCreateShader 时崩溃,并且 glfwInit 似乎失败了。
我把.dll路径放在环境变量里
有什么想法吗?
最佳答案
您通常可以在计算机上找到的 OpenGL 实现假定 GPU 可用。一般而言,网络服务(如 Web 服务器)在无法访问 GPU 的环境配置中运行。因此 OpenGL 也不可用。
此外,出于安全原因,所有处理 UI 元素(如窗口和设备上下文)创建的 API 函数也经常被禁用。
更新:
您可以放弃使用 GLFW 并使用 OSMesa 创建一个纯屏幕外、无窗口的 OpenGL 上下文,它使用仅 CPU 的实现进行光栅化。 OSMesa 必须定制构建并融入您的程序,这样做时它将无法(毫不费力地)退回到 GPU 加速的 OpenGL 实现。
关于c++ - IIS 7 启动时 glfwInit 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33503499/