2010-02-18 3 views
1

En Visual C++ lorsque terminate() est appelé le comportement par défaut est d'appeler abort() qui affiche par défaut une boîte de message, puis - après avoir appuyé sur le bouton OK dans la boîte de message - termine l'application. La partie "affiche la boîte de message" n'est pas très bonne pour les programmes qui doivent fonctionner sans interaction humaine puisque le programme se bloque jusqu'à ce que le bouton soit enfoncé.Comment simuler _set_abort_behavior dans VC++ 7 et plus tôt?

Dans VC++ 8, Microsoft a introduit la fonction _set_abort_behavior() qui peut être appelée au démarrage de l'application et interdit d'afficher la boîte de message dans abort().

Comment puis-je atteindre la même chose dans VC++ 7 et plus tôt? Je pourrais écrire mon gestionnaire terminate() personnalisé, mais quelle est la meilleure action à invoquer à l'intérieur de sorte que le programme se termine de la même manière qu'avec abort() mais sans la boîte de message?

+0

Sommes-nous indépendants de l'OS ici? – ChrisBD

+0

@ChrisBD: Le problème avec la boîte de message est spécifique à VC++. Je n'ai jamais entendu parler de l'exécution de VC++ s'exécutant ailleurs que sur Windows. – sharptooth

Répondre

2

Appelez la fonction de fin de processus du système d'exploitation. TerminateProcess() sur Windows.

+0

+1 - nobugz. C'est un bon si j'étais heureux pour un processus de mourir instantanément. Pas recommandé si vous voulez qu'il meure d'une manière ordonnée bien. – ChrisBD

Questions connexes