Découplage d'un processus de la fenêtre de commande
Dans Go, vous pouvez créer un processus enfant en utilisant os.StartProcess(). Cependant, par défaut, ce processus reste connecté à la fenêtre de commande parent. Pour découpler le processus et l'exécuter en arrière-plan, vous devez modifier ses attributs.
Dans votre code, vous avez configuré la structure procAttr pour rediriger les descripteurs de fichiers du processus enfant. Cependant, il semble que vous ayez omis le paramètre nécessaire pour masquer la fenêtre de la console pour les systèmes Windows.
Pour masquer la fenêtre de la console, ajoutez la ligne suivante au membre procAttr.Sys :
procAttr.Sys.HideWindow = true
Cependant, vous avez mentionné que cela entraîne une erreur « panique vers un mauvais pointeur de mémoire ». Cela est probablement dû à un autre problème dans votre code qui n'est pas lié au découplage du processus.
Pour compiler votre programme sans créer de lien vers le sous-système de l'interface graphique Windows et en désactivant la création de la fenêtre de console, utilisez la commande suivante :
go tool 8l -o output.exe -Hwindowsgui input.8
Cela générera un exécutable qui pourra être exécuté en arrière-plan sans fenêtre de console.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!