Visual studio 2010 sortant après la fin du programme

J’essaie Visual Studio 2010 en compilant un programme C. Après avoir affiché la solution dans la fenêtre de commande “DOS”, la fenêtre est immédiatement fermée. Dans Visual Studio 2008, vous recevez le message. Appuyez sur n’importe quelle touche pour continuer. Une pression sur une touche ferme la fenêtre d’invite de commande. Comment définir ce comportement en 2010?

Après quelques recherches sur Google, j’ai trouvé cette solution qui ne nécessite pas de modification de votre code. Il contient une solution de contournement qui implique la modification de votre fichier .vcxproj.

Pour ce faire, dans Microsoft Visual C ++ 2010 Express (je suppose que c’est similaire pour Visual Studio 2010), ouvrez votre projet et accédez au menu suivant:

Project->$YOURPROJECTNAME Properties... ->Configuration Properties ->Linker ->System->SubSystem 

Utilisez ensuite la liste déroulante pour sélectionner Console (/ SUBSYSTEM: CONSOLE) et appliquer le changement.

“Démarrer sans déboguer” devrait maintenant faire la bonne chose.

Cela s’explique par le fait qu’à présent dans VS 2010, il est possible de créer un projet C ++ générique vide par défaut, sans avoir à passer par l’assistant. VS 2010 n’a donc pas défini correctement le drapeau Console (/SUBSYSTEM:CONSOLE) et VS2010 n’a donc aucune idée qu’il s’agit d’une application console pour laquelle il enverrait l’invite habituelle “Appuyez sur n’importe quelle touche …”.

Ce problème ne se produit pas si vous créez un type de projet d’application console à partir du menu Nouveau projet.

Mais vous pouvez ensuite définir cet indicateur vous-même et de nombreux autres, via Projet / Paramètres, car le message ci-dessus a répondu correctement!

C’est normal. La fenêtre de la console “DOS” est attachée à votre programme et doit se fermer à la fin de votre programme. Si vous voulez qu’il rest ouvert, vous devez append du code à votre programme pour le garder ouvert. Tout ce que vous avez à faire est d’append un relevé d’impression, puis un relevé d’entrée à la fin de votre programme.

Si vous voulez qu’il rest ouvert, vous devez append du code à votre programme. J’aime ça

 #include  #include  ... main(...) { your codes . . . system("pause"); } 

Si vous ajoutez ce code, votre écran noir rest ouvert. “system (” pause “)” dans le fichier d’en-tête stdlib.h.

FWIW, la commande “Démarrer sans débogage” fonctionne dans VS2010 exactement de la même manière que dans les versions précédentes de Visual Studio (c’est-à-dire que pour un projet de console, la console rest ouverte lorsque le processus se termine par un “Appuyez sur n’importe quelle touche pour continuer.” “invite”).

Alors, comment obtenez-vous VS2010 pour exécuter votre programme? Si vous utilisez le raccourci “Ctrl-F5”, pouvez-vous vérifier que Ctrl-F5 est lié à Debug.StartWithoutDebugging dans “Options / Environnement / Clavier”?

De plus, pouvez-vous essayer d’exécuter votre programme en utilisant le menu (“Debug / Démarrer sans débogage”)?

Ajoutez “Démarrer sans débogage” au menu Débogage …

Outils >> Personnaliser >> Commandes (Onglet) >> Barre de menu (liste déroulante) >> Déboguer (Options de contrôle) >> Ajouter une commande (bouton) >> Déboguer (Liste des catégories) >> Démarrer sans déboguer

Utiliser “Démarrer sans débogage” permettra à VS2010 d’afficher la phrase “Appuyez sur n’importe quelle touche pour continuer” avant de quitter.

Si vous démarrez votre application sans débogueur (“Démarrer sans débogage”), la fenêtre de la console restra ouverte jusqu’à ce que vous appuyiez sur une touche.

Vous pouvez append cette fonction et l’appeler juste avant de revenir de main ():

 void keep_window_open() { // clear buffer fflush(stdin); printf("Please enter a character to exit\n"); char ch; ch = getchar(); return; } 

Je l’ai adapté à partir d’une version C ++ dans un fichier d’en-tête d’utilitaire sur le site de Bjarne Stroustrup: http://www.stroustrup.com/Programming/std_lib_facilities.h