我正在考慮編寫跨平臺(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 關注
- 238 瀏覽
添加回答
舉報
0/150
提交
取消