我需要在windows中使用SDL作为服务应用程序的一部分。
这个应用程序的基础就是截图一个用SDL打开的3D文件,并且运行良好。
问题是,当应用程序在windows的服务上下文中启动时,SDL_Init会发出抱怨。
无显示器可用
我知道,如果我不使用窗口,我将不会有输入从键盘和鼠标,无论如何,我不需要他们为我的应用程序。
有什么办法使SDL屏幕外的窗口吗?我听说了mesa/osmesa,但它似乎只在Linux上
发布于 2015-08-28 05:33:58
在我看来,这可以通过更改您的服务属性,或者通过Windows注册表的一些技巧来实现。我没有试过,但是这篇文章和它的评论可能是有用的:https://lostechies.com/keithdahlby/2011/08/13/allowing-a-windows-service-to-interact-with-desktop-without-localsystem/。以下是主题的MSDN条目(请参阅“使用交互式服务”部分):https://msdn.microsoft.com/en-us/library/windows/desktop/ms683502%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396。尽管MSDN的文章至少着眼于通过GUI与用户的服务交互来解决这个问题,这是相关的,但与图形的服务交互有一点不同。
有一次,我遇到一个应用程序,它正在使用SDL,在从服务启动时未能正确地初始化自己。将环境变量SDL_VIDEODRIVER设置为“dummy”帮助了我。应用程序的图形功能在此设置下工作正常(尽管我不确定这是否足以满足您打开3D文件的用例)。
https://stackoverflow.com/questions/26421595
复制相似问题