Mencetak ke Prompt Perintah dengan -ldflags -H=windowsgui
Apabila menyusun aplikasi Go dengan -ldflags -H=windowsgui, standard pemegang untuk input/output ditutup, menjadikannya mencabar untuk mencetak output ke prompt arahan. Untuk mengatasi had ini, proses itu perlu dilampirkan pada konsol induknya.
Satu kaedah untuk mencapai ini ialah dengan menggunakan fungsi AttachConsole pakej syscall:
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") } }
Dengan memanggil AttachConsole, proses itu boleh mendapat akses kepada konsol dan mencetak mesej seperti yang dikehendaki.
Jika AttachConsole gagal, pilihan alternatif termasuk mencipta dialog GUI atau memperuntukkan tetingkap konsol baharu menggunakan AllocConsole. Walau bagaimanapun, memaparkan mesej dalam dialog GUI boleh menjadi lebih mesra pengguna dan sesuai untuk memaparkan maklumat versi yang biasanya dikaitkan dengan konsol.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencetak ke Prompt Perintah Apabila Menggunakan `-ldflags -H=windowsgui` dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!