Mein Verständnis ist, dass, wenn Sie eine C++ - Anwendung durch Task-Manager in Windows XP beenden, die Anwendung noch "sauber" zerstört wird - d. H. Der Aufruf-Stack wird aufgelöst und alle relevanten Objektdestruktoren werden aufgerufen. Ich bin mir nicht sicher, ob mein Verständnis hier falsch ist.Ist es möglich, eine C++ - Anwendung unter Windows XP zu beenden, ohne den Call-Stack abzuwickeln?
Ist es möglich, eine solche Anwendung sofort zu beenden, ohne den Stapel abzuwickeln?
Zum Beispiel kann die Anwendung RAII-Muster verwenden, die Ressourcen zerstören oder freigeben, wenn ein Objekt zerstört wird. Wenn der traditionelle "Kill-Prozess" durch den Task-Manager anmutig ist, würde es mir ermöglichen, die Anwendung sofort zu töten, um ein unangemessenes Herunterfahren (z. B. einen Stromausfall) zu testen.
Edit:
Nur um zu klären, war ich nach einem vorhandenen Dienstprogramm oder Programm, das mir, dies zu tun erlauben würde. Ich sollte in der Lage sein, die Lösung für Programme zu verwenden, für die ich den Quellcode nicht habe, was bedeutet, dass eine programmatische Lösung nicht wirklich akzeptabel ist.
Edit:
Nur mehr Kontext, manchmal habe ich mit 3rd-Party-Diensten arbeiten, die sehr aufdringlich sind (zum Beispiel nörgelnden mir jede Stunde neu zu starten). Da ich weiß, dass ich nicht brauche, um neu zu starten, möchte ich den Prozess/Service zu töten, so dass es mich nicht mehr nervt. Leider waren einige der Entwickler von Drittanbietern "schlau" genug, um mich daran zu hindern, dies zu tun, und wenn ich den Prozess über den Task-Manager abbringe, wird das System sofort neu gestartet (ich nehme an, dass RAII dafür verwendet wird).
Ich bezweifle, dass die Respawning der Nag-Dienste RAII verwendet. –
Der NAG-Dienst wird nicht neu gestartet - er wird getötet, aber nach dem Aussterben wird der Computer neu gestartet. – LeopardSkinPillBoxHat
Für mich hört sich das so an, als würde der Nag-Prozess von einem anderen Prozess ausgelöst, und es wartet nur darauf, dass der Nag-Prozess beendet wird, damit er neu starten kann. Haben Sie versucht, mithilfe von Process Explorer festzustellen, ob ein weiterer Prozess von Drittherstellern als übergeordnetes Element des Nag-Prozesses aufgeführt ist? Wenn dies der Fall ist, könntest du vielleicht stattdessen den Elternteil töten (oder zumindest vor dem Töten des Nag-Prozesses aussetzen). –