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

Is it's possible make GUI and console app in one exe?

我想用GUI开发App,可以运行不显示GUI。我该怎么做?

如果此应用程序可以在与 GUI 无关的服务器上运行(例如:我可以通过 ssh 或其他方式使用此类应用程序吗)。

如果可能的话请举个例子。

是的,这并不总是那么容易,而且可能不值得。一般的想法是编写一个控制台程序,尝试动态加载 gui 库并创建 window。如果成功,它将从 console/controlling 终端分离并成为一个 gui 程序。在 Windows 上,当用户双击 exe 时,这可能会短暂地弹出一个控制台 window,因为它会先创建,然后迅速销毁。

您可能希望使用 dlopen/LoadLibrary 动态加载 gui,因为这些库甚至可能不存在于您 运行 正在使用的计算机上,并且如果您依赖系统加载它们在启动时,当它们丢失时,您的程序根本不会 运行。这是最痛苦的部分——检查 XOpenDisplay 或 CreateWindow 的 return 值或任何容易的东西,并且从控制台分离也很容易(FreeConsole 或 fork)。但首先你需要让你的程序在根本没有客户端 gui 库的最坏情况下真正启动。

如果您可以忽略这种情况 - 如果库存在但显示不存在,您只需将其作为常规 运行 时间错误处理 - 那么它并不太难全部.