【发布时间】:2022-01-19 20:48:12
【问题描述】:
我用 C 语言编写了一个 UNIX 守护程序,我想将它移植到 Windows。 我的目标是 Windows 10。
当我搜索如何创建 Windows 服务时,我遇到了 approach using .NET and C#,我都想不惜一切代价避免。
如何在 C 语言中创建一个简单直接的服务,而不需要 Microsoft 试图卸载我的厨房水槽?如果真的需要,我会考虑 C++,但 C# 和 .Net 太过分了。
如果在 VisualStudio 之外更容易,我也可以切换到不同的编译器。 (目前我使用的是 Visual Studio 2019,最新更新。)
注意:我的 Linux 守护程序只有一个依赖项:可用于 Windows 的 libhidapi。
更新
没有可用的 C++ 模板。
【问题讨论】:
-
我不认为你可以。这些太不一样了。您将需要以 Windows 方式重写功能。
-
@EugeneSh。好,谢谢!一个小的 C 程序不是以前在 Windows 下的方式吗,pre dot Net?
-
@EugeneSh。用 C 语言为 Windows 编写服务并不难——如果我可以访问很久以前为客户编写的框架,我会发布答案。服务启动的方式有点不同——IIRC 它不是来自
main(),甚至不是微软的main()的任何“供应商锁定”版本。从CreateService()function 开始构建您的服务。此外,还有更多示例:google.com/… -
@AndrewHenle 我没有说难,我说它和Linux/Unix有很大的不同,所以直接移植会是一个挑战
-
我在前世(大约 1999 年)为 NT 写过服务……我可以做一些探索并尝试记住它是如何工作的。给我几天时间。
标签: c visual-studio windows-services daemon