我正在考虑编写跨平台(Windows/Debian/Darwin/Red Hat)服务并比较语言选项。我真的很欣赏 Go 的跨平台线程能力和简单的交叉编译,但我想确保我能够在需要时轻松访问任何本机(例如 Windows 服务)API。我应该考虑什么样的事情来推动我的语言决定?
1 回答
繁花如伊
TA贡献2012条经验 获得超12个赞
Go 完全支持通过其核心包调用任意Win32 API syscall
。
虽然调用原始 Win32 viasyscall
写起来不是很漂亮(主要是因为你跨越了托管/非托管边界,然后返回)并且没有编译器的支持(类似于 Delphi 的支持),但这只是好的,此类 API 调用的包装器函数的生成可以自动化——Go 核心包本身就使用了这个工具,其他流行的例子包括这个odbc
包。
请注意,已经存在winsvc
一个库,它将 Go 与 Windows SCM 和事件日志连接起来。
还要看看service
哪个提供了统一的 API,用于使用平台原生工具(它winsvc
在 Windows、IIRC 上使用)将您的程序转换为守护进程/服务。
- 1 回答
- 0 关注
- 210 浏览
添加回答
举报
0/150
提交
取消