如何在没有控制台的Windows上运行D-Bus?

时间:2017-10-01 20:58:47

标签: windows c++11 dbus

我在Windows上移植了一个Linux应用程序,我需要在win会话中运行 dbus-daemon.exe

我的应用程序和dbus-daemon.exe工作正常,但后者仍然打开一个默认控制台,并且不熟悉Windows上的编程,我不知道如何摆脱它。

也许让它变得不可见?

1 个答案:

答案 0 :(得分:0)

默认情况下,Windows会打开一个控制台窗口,用于为控制台子系统编译的可执行文件(“子系统”本质上是可移植可执行文件格式的一些元数据,也称为EXE / DLL)。所以你至少有两个选择:

  1. 如果您正在进行编译,请编译Windows子系统的dbus-daemon。这是linker option
  2. 启动dbus-daemon进程,将CREATE_NO_WINDOW flag传递给相关的API函数(可能是CreateProcess)。如果您没有直接使用Windows API,请查看您正在使用的API中公开CreateProcessCREATE_NO_WINDOW的方式。例如,在.NET中,它是ProcessStartInfo.CreateNoWindow属性。