使用-ldflags -H=windowsgui 列印到命令提示字元
使用-ldflags -H=windowsgui
使用-ldflags -H=windowsgui
輸入/輸出句柄被關閉,這使得將輸出列印到命令提示字元變得困難。為了克服這個限制,有必要將進程附加到其父進程的控制台。package main import ( "fmt" "syscall" ) var ( modkernel32 = syscall.NewLazyDLL("kernel32.dll") procAttachConsole = modkernel32.NewProc("AttachConsole") ) func AttachConsole(dwParentProcess uint32) (ok bool) { r0, _, _ := syscall.Syscall(procAttachConsole.Addr(), 1, uintptr(dwParentProcess), 0, 0) ok = bool(r0 != 0) return } func main() { ok := AttachConsole(syscall.ATTACH_PARENT_PROCESS) if ok { fmt.Println("Okay, attached") } }
實現此目的的一種方法是使用 syscall 套件的 AttachConsole 函數:
透過呼叫 AttachConsole,該進程可以存取控制台並根據需要列印訊息。 如果 AttachConsole 失敗,替代選項包括建立 GUI 對話方塊或使用 AllocConsole 指派新的控制台視窗。但是,在 GUI 對話方塊中顯示訊息可能更加用戶友好,並且適合顯示通常與控制台關聯的版本資訊。以上是在 Go 中使用 `-ldflags -H=windowsgui` 時如何列印到命令提示字元?的詳細內容。更多資訊請關注PHP中文網其他相關文章!