帶有Windows GUI 標誌的靜默Go 應用程式和命令列輸出
在Go 應用程式中,使用-ldflags -H= windowsgui 進行編譯會停用控制台訪問,防止輸出列印到命令視窗。要解決此問題並將版本資訊列印到命令提示符,可以採取以下步驟:
根本問題是可執行檔的PE 頭包含「Windows」子系統變量,該變數使進程與任何控制台解除關聯。若要列印到命令提示符,需要明確控制台附件。
Go 的 syscall 套件提供了 AttachConsole 函數來實現此目的。下面的程式碼示範了它的用法:
附加到父進程的控制台後,程式可以像往常一樣使用 fmt.Println 列印到命令提示字元。
此外,對於一個完整的解決方案,請考慮透過使用 AllocConsole() 建立新的控制台視窗或顯示 GUI 對話方塊來通知使用者該問題來處理故障情境。
以上是如何從使用 `-ldflags -H=windowsgui` 編譯的 Silent Go 應用程式列印命令列輸出?的詳細內容。更多資訊請關注PHP中文網其他相關文章!