Un exécutable peut-il être à la fois une console et une application GUI ?
Créer un programme C# qui se comporte à la fois comme une interface de ligne de commande (CLI ) et une application d'interface utilisateur graphique (GUI) basée sur les indicateurs fournis n'est pas directement faisable.
Raison :
Comme Raymond Chen l'explique dans son blog, le système d'exploitation nécessite des informations sur le sous-système du programme avant son exécution. Cette décision ne peut pas être modifiée une fois le programme démarré.
Approches alternatives :
Bien que la mise en œuvre directe d'un exécutable double mode ne soit pas possible, il existe plusieurs techniques pour obtenir une fonctionnalité similaire :
1. Binaires séparés :
Adoptez l'approche utilisée par "devenv". Créez deux binaires distincts : un avec l'extension ".exe" pour l'interface graphique et un avec l'extension ".com" pour la console. Cela exploite la priorité de Win32 pour les fichiers "com" lorsqu'aucune extension n'est fournie.
2. Technique de relance (utilisée par "ildasm") :
Implications :
Quelle que soit l'approche préférée, la suivante des limitations s'appliquent :
Conclusion :
Bien qu'il ne soit pas possible d'avoir un exécutable qui fonctionne simultanément comme une console et une application GUI, les techniques susmentionnées fournissent des approximations proches, en adaptant le choix aux compromis souhaités.
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!