INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Installiertes Programm macht Fehler beim Beenden



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

10.07.2008, 08:35 (Dieser Beitrag wurde zuletzt bearbeitet: 10.07.2008 08:44 von rolfk.)
Beitrag #41

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
Installiertes Programm macht Fehler beim Beenden
' schrieb:die Quit LabVIEW Primitive ist (bei mir) die letzte Funktion überhaupt, die im Haupt-VI aufgerufen wird. vorher wurde schon alles "sauber" deinitialisiert, etc - da läuft definitiv nix mehr in der ganzen VI Hierarchie, wenn diese Funktion dran kommt - und dient eigentlich nur dazu der LV Runtime Engine den Befehl zu geben "so, jung, wir sind feddich hier, kannst abbaun!";)

ansonsten stimme ich dir zu: ein laufendes Programm mit "aktiven Schleifen", etc einfach so mit "quit LabVIEW" oder der "Stop"-Primitive zu beenden ist schon sehr sehr unsauber und brachial ...

Wenn Du Dein Programm so strukturiert hast brauchst Du das Quit gar nicht mehr. Sobald Du das letzte verbliebene Frontpanel innerhalb einer Exe schliesst beendet sich das Exe automatisch. Das ist schon so gewesen seit es LabVIEW Exes gibt und war für gewisse Leute ein Grund zum meckern da sie dadurch keine unsichtbaren LabVIEW Deamons programmieren zu können glaubten. (Glaubten deshalb weil es doch geht. Man muss nur erst eine VI Referenz zu dem VI selber öffnen und solange die innerhalb einer Running VI-Hierarchy aktiv bleibt bleibt das entsprechende VI auch im Speicher).

Der einzige Grund warum ein LabVIEW Exe sich nicht ordentlich verabschiedet obwohl alle aktiven VI Referenzen geschlossen wurden und das letzte Frontpanel ebenfalls, ist wenn das LabVIEW Programm noch irgendwo in einem Treiber stecken bleibt. Das braucht nicht mal in einem Aufruf zur Treiber-DLL selber zu sein sondern kann auch in der Cleanuproutine dieses Treibers sein. Aber:

1) ist das dann irgendwie ein Bug im entsprechenden Treiber und
2) hilft LabVIEW Quit hier auch nicht

Mit dem Quit deckst Du im Prinzip nur eventuel nicht ordentlich abgeschlossene Tasks (Deamons, Loops, etc) und im Falle von buggy DLL Treibern die sich beim Unloaden verheddern wenn noch Resourcen durch die Applikation geöffnet sind, kannst Du sogar einen Zombieprozess erzeugen:

Das LabVIEW Programm wurde gewaltsam beendet bevor der Task der die Resource verwaltet die Möglichkeit hatte um diese ordentlich abzuschliessen und ist nun selber weg aber der Prozess wird durch den fehlerhaften Treiber daran gehindert wirklich aus dem Speicher entfernt zu werden.

Die Folge ist dass Du den Zombie nur noch durch den Task Manager beenden kannst und wenn sich der Treiber in den Tiefen des Windows Kernels selber verirrt hat eventuel gar nicht mehr. Und wer hier nun sagt dass das in Windows 32bit nicht geht dem kann ich nur sagen dass ich das selber so gesehen habe. Die einzige Lösung um dann wieder zu einem funktionierenden System zu kommen ist der Powerknopf.

Ich programmiere nun schon über 16 Jahre in LabVIEW, beinahe 12 davon professionel als Alliance Member und ich habe die Quit-Funktion noch in keiner Applikation eingebaut. Ist einfach nicht nötig da ich ganz einfach dafür sorge dass sich alle Loops ordentlich beenden und als Letztes macht das HauptVI das Licht aus indem es ganz einfach ein FP.Close macht. Wenn dann noch etwas läuft habe ich was falsch gemacht, das durch die Quit-Funktion höchstens kaschiert würde.

Rolf Kalbermatter

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Nachrichten in diesem Thema
Installiertes Programm macht Fehler beim Beenden - rolfk - 10.07.2008 08:35

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
Sad Fehlermeldung beim Beenden der exe Wedgewood 3 4.393 18.03.2021 15:44
Letzter Beitrag: jg
  Fehler beim verwenden des Installers 11003 gottfried 0 7.287 08.09.2016 11:27
Letzter Beitrag: gottfried
  Installer löscht anderes installiertes Labview Programm Winterkind 2 6.785 15.06.2016 14:09
Letzter Beitrag: Winterkind
  Fehler beim Erstellen einer .exe Serial 4 7.986 04.04.2015 15:39
Letzter Beitrag: Philipp.Holze
  Fehler 1 beim Applicationstart pericles 1 4.320 15.07.2013 18:18
Letzter Beitrag: jg
  Fehler -600 beim Compilieren einer DLL BerndDasBrot 2 5.635 14.05.2012 14:43
Letzter Beitrag: BerndDasBrot

Gehe zu: