【发布时间】:2009-06-26 07:09:35
【问题描述】:
我正在尝试编写一个可以渲染到纹理的 C++ Windows 服务。我已经将代码作为常规控制台应用程序运行,但是当作为服务运行时 wglGetProcAddress() 返回 NULL。
谁能告诉我这是否可行,如果可以,我需要做什么才能使 OpenGL 在服务进程中工作?
编辑:
我还没有让它在 Vista 下工作,但它在 XP 下工作。
【问题讨论】:
-
我假设您通过将服务设置为与桌面交互以便获得与物理设备的连接来使其在 XP 中工作。不幸的是,在 Vista 和更高版本中这是不可能的,所有服务都在与交互式桌面不同的会话中运行,因此无法连接到它。
-
为什么需要它作为服务运行?由于您需要有一个登录用户,并且该服务必须在交互式桌面上运行,否则它无法成功,将其编写为具有某种自动启动机制的用户应用程序似乎更有意义。跨度>
-
我们希望将它作为服务运行,因为它基本上是一个渲染农场类型的应用程序,旨在在一堆无头计算节点上运行。让他们全部登录是不可取的,在机器启动时启动服务会更干净。