首頁 > 後端開發 > Golang > 如何從使用 `-ldflags -H=windowsgui` 編譯的 Silent Go 應用程式列印命令列輸出?

如何從使用 `-ldflags -H=windowsgui` 編譯的 Silent Go 應用程式列印命令列輸出?

Mary-Kate Olsen
發布: 2024-11-27 18:27:14
原創
662 人瀏覽過

How to Print Command Line Output from Silent Go Applications Compiled with `-ldflags -H=windowsgui`?

帶有Windows GUI 標誌的靜默Go 應用程式和命令列輸出

在Go 應用程式中,使用-ldflags -H= windowsgui 進行編譯會停用控制台訪問,防止輸出列印到命令視窗。要解決此問題並將版本資訊列印到命令提示符,可以採取以下步驟:

根本問題是可執行檔的PE 頭包含「Windows」子系統變量,該變數使進程與任何控制台解除關聯。若要列印到命令提示符,需要明確控制台附件。

Go 的 syscall 套件提供了 AttachConsole 函數來實現此目的。下面的程式碼示範了它的用法:

附加到父進程的控制台後,程式可以像往常一樣使用 fmt.Println 列印到命令提示字元。

此外,對於一個完整的解決方案,請考慮透過使用 AllocConsole() 建立新的控制台視窗或顯示 GUI 對話方塊來通知使用者該問題來處理故障情境。

以上是如何從使用 `-ldflags -H=windowsgui` 編譯的 Silent Go 應用程式列印命令列輸出?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板