将 UNIX 守护程序移植到 Windows 服务
Porting a UNIX daemon to a Windows Service
我用 C 编写了一个 UNIX 守护程序,我想将其移植到 Windows。
我的目标是 Windows 10.
当我搜索如何创建 Windows 服务时,遇到了 approach using .NET and C# 我都想不惜一切代价避免的问题。
我怎样才能在 C 语言中创建一个简单直接的服务,而不需要 Microsoft 试图卸载给我的厨房水槽?如果我真的必须,我会考虑 C++,但 C# 和 .Net 太过分了。
我也可以切换到不同的编译器,如果在 VisualStudio 之外更容易的话。 (目前我使用的是 Visual Studio 2019,最新更新。)
注意:我的 Linux 守护程序只有一个依赖项:libhidapi,可用于 Windows。
更新
没有可用的 C++ 模板。
这归结为创建两个不同的应用程序 (.exe)
一个到 运行 使用 StartServiceCtrlDispatcher()
的服务,其中调度函数调用 RegisterServiceCtrlHandlerEx()
来注册控制器。
一个使用 CreateService()
安装服务
可以跳过安装程序,使用 sc
命令行实用程序,它是 OS.
的一部分
参见 full example。
我用 C 编写了一个 UNIX 守护程序,我想将其移植到 Windows。 我的目标是 Windows 10.
当我搜索如何创建 Windows 服务时,遇到了 approach using .NET and C# 我都想不惜一切代价避免的问题。
我怎样才能在 C 语言中创建一个简单直接的服务,而不需要 Microsoft 试图卸载给我的厨房水槽?如果我真的必须,我会考虑 C++,但 C# 和 .Net 太过分了。
我也可以切换到不同的编译器,如果在 VisualStudio 之外更容易的话。 (目前我使用的是 Visual Studio 2019,最新更新。)
注意:我的 Linux 守护程序只有一个依赖项:libhidapi,可用于 Windows。
更新
没有可用的 C++ 模板。
这归结为创建两个不同的应用程序 (.exe)
一个到 运行 使用 StartServiceCtrlDispatcher()
的服务,其中调度函数调用 RegisterServiceCtrlHandlerEx()
来注册控制器。
一个使用 CreateService()
可以跳过安装程序,使用 sc
命令行实用程序,它是 OS.
参见 full example。