win32:获取Linux中的命令行行为

时间:2016-09-23 05:53:29

标签: windows winapi console stdout

在不同的平台上,这是应用程序stdout出现的地方(我已经标记了我不满意的部分):

如果从控制台窗口中启动

  • Linux:在控制台窗口中
  • win32" WinMain":无处
  • win32" main":在控制台窗口中

如果通过双击桌面图标

启动
  • Linux:无处
  • win32" WinMain":无处
  • win32" main":仅为应用程序打开控制台窗口

我正在尝试构建混合模式应用程序。根据命令行参数,它应打开GUI,或者作为命令行应用程序。这在Linux上运行良好,但在win32上,我必须决定是否要完成整个事情" WinMain"或"主要"。无论我选择哪种,两种模式中的一种都会被打破。

我认为a way隐藏了main应用程序的控制台窗口,但此解决方案不太理想(如果从现有控制台启动,则该控制台被隐藏;如果从一个新的控制台,该控制台在被隐藏之前会闪烁。)

是否有一组win32 API调用会使" main"或者" WinMain"模式的行为与应用程序在Linux上的行为方式相同吗?

请注意,我还需要能够处理应用程序的标准输出(如果通过CreateProcess / CreatePipe在命令行应用程序节点中启动,如here所述。

语言为python3,但我认为这几乎不重要。

0 个答案:

没有答案