簡體   English   中英

沒有窗口的SDL(Windows服務)

[英]SDL without a window (Windows service)

我需要在Windows中使用SDL作為服務的應用程序的一部分。

該應用程序的基礎只是拍攝使用SDL打開的3D文件的屏幕截圖,並且開箱即用。

問題在於,在Windows服務上下文中啟動應用程序時,SDL_Init會抱怨。

沒有可用的顯示

我知道,如果我不使用窗口,則鍵盤和鼠標都不會提供輸入,無論如何,我的應用程序都不需要它們。

有什么辦法可以使Windows上的SDL不在屏幕上? 我聽說過mesa / osmesa,但似乎只在Linux上

在我看來,這可以通過更改服務屬性以及Windows注冊表的一些技巧來完成。 我沒有嘗試過,但是這篇文章及其評論可能有用: https : //lostechies.com/keithdahlby/2011/08/13/allowing-a-windows-service-to-interact-with-desktop-without- localsystem / 這是有關該主題的MSDN條目(請參閱“使用交互式服務”部分): https : //msdn.microsoft.com/zh-cn/library/windows/desktop/ms683502%28v=vs.85%29.aspx ?f = 255&MSPPError = -2147217396 盡管至少MSDN文章希望通過GUI與用戶進行服務交互來解決這個問題,但相關的內容與圖形服務交互有點不同。

一旦我遇到一個正在使用SDL的應用程序,並且在從服務啟動時無法正確初始化自身。 將環境變量SDL_VIDEODRIVER設置為“虛擬”對我有幫助。 使用此設置,應用程序的圖形功能看起來可以正常工作(盡管我不確定這是否足以滿足您涉及打開3D文件的用例的需要)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM