I tried various ways of creating a Go program that only displays either a MessageBox or a standalone GUI window.
If I were to write this in C / C++ I would just define a WinMain, leave out the main and I would be good to go.
It seems to me that as soon as I define a main function a console window is created automatically. And the main function is compulsory.
package main
func main() {
...
}
To avoid this I tried an example which creates a WinMain
func WinMain(wproc uintptr) {
    hInstance := GetModuleHandle(nil)
    ...
}
But the effect is the same: an empty console window and a GUI window:

 
     
    
