是否可以在一个exe中制作GUI和控制台应用程序?

时间:2015-01-25 13:51:29

标签: user-interface console console-application d

我想用GUI开发App,可以在不显示GUI的情况下运行。我怎么能这样做?

如果可能,此应用程序可以在没有任何与GUI相关的服务器上运行(例如:我可以使用ssh左右使用此类应用程序)。

如果有可能,请提供任何示例。

1 个答案:

答案 0 :(得分:2)

是的,虽然它并不容易,但可能不值得。一般的想法是编写一个控制台程序,试图动态加载gui库并创建一个窗口。如果成功,它将从控制台/控制终端分离并成为一个gui程序。在Windows上,当用户双击exe时会短暂弹出控制台窗口,因为它会先创建,然后快速销毁。

您可能希望使用dlopen / LoadLibrary动态加载gui,因为libs可能甚至不会出现在您运行的计算机上,如果您依赖系统在启动时加载它们,您的程序将赢得&当他们失踪时,他们会全力以赴。这是最痛苦的部分 - 检查XOpenDisplay或CreateWindow的返回值或任何简单的东西,并且从控制台分离很容易(FreeConsole或fork)。但首先你需要让你的程序实际上从最糟糕的情况开始,没有客户端gui库。

如果您可以忽略这种情况 - 如果libs存在但显示器不是,那么您只需将其作为常规运行时错误处理 - 那么它根本不会太难