c++ - IIS 7 启动时 glfwInit 失败

标签 c++ windows opengl iis-7 glfw

我正在制作一个从 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/

相关文章:

c++ - 如何在不将 .dll 放在系统文件夹中的情况下安装 freeglut?

c++ - 为什么使用 push_back() 分配时 vector 元素的地址不连续?

c++ - std::map 默认构造函数是显式的吗?

c++ - 无法将纹理应用于 Qt OpenGL 中的顶点网格

c++ - 我可以在 C++ 中使用 ReadDirectoryChangesW() 来观察多个目录的变化吗?

windows - 根据搜索字符串从 REG QUERY 中提取特定注册表项

c++ - 当我不再需要它们时如何放弃提升的特权

opengl - 在 OpenGL 中将网格渲染为一系列子组?

opengl - 如何在OpenGL中绘制多个立方体

c++ - C++ 和 gtest 中的运算符 <<