HI!
Bei einem Kunden, der mit Windows 7 arbeitet, tritt öfters das Phänomen auf, dass unser Programm plötzlich ohne Vorwarnung (d.h. ohne Fehlermeldung) stehenbleibt; wenn man versucht das Programm abzubrechen, kommt die Meldung: "VP.EXE reagiert nicht".
Die VP.EXE ist ein xBase++-Programm von ca. 30 MB. Beim Start wird aus einer Datei ein Datensatz gelesen; dieser wird dann durchgerechnet, gedruckt und wieder zurückgespeichert. Interessanterweise tritt das oben beschriebene Phänomen nicht beim 1. Durchlauf, sondern erst beim 2. Programmdurchlauf auf. Zusätzlich zu der vorgenannten Meldung sieht man dann auch noch einen schwarzen DOS-Bildschirm mit der der Überschrift: VP.EXE.
In der Vergangenheit habe ich diesen DOS-Bildschirm öfters bekommen, als ich noch die APPsys bzw. die APPquick in die Programmierung eingebunden hatte. Meines Wissens und meiner Nachforschung nach ist die APPsys jedoch nicht mehr in die VP.EXE eingebunden.
Zusätzlich ist mir aufgefallen, dass bei dem speziellen Kunden neben unserem Programm im Hintergrund immer noch andere Programme parallel laufen. Kann dies etwas mit dem o.g. Programmstillstand zu tun haben?
Vielleicht kann mir jemand einen Tipp geben! Vielen Dank im Voraus!
Gruß Werner
Fehler: ".EXE reagiert nicht"
Moderator: Moderatoren
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9345
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 100 Mal
- Danksagung erhalten: 359 Mal
- Kontaktdaten:
Re: Fehler: ".EXE reagiert nicht"
Kann im einfachsten Fall ein simpler Deadlock sein - das Programm versucht, einen Datensatz zu sperren, von dem es glaubt, dass er in jedem Fall gesperrt werden kann (DO WHILE !RLock();ENDDO), aber das geht nicht, weil er oder die Tabelle das nicht zulassen. "Keine Rückmeldung" bedeutet ja "lediglich", dass das Eventmanagement der jeweiligen Software nicht der 100-Millisekunden-Regel folgt, also nicht alle 100 Millisekunden die Eventqueue ausliest. Wenn es mit etwas anderem beschäftigt ist, geht das manchmal eben nicht, weshalb sich diese Situation auch hin und wieder von selbst auflöst (was dann aber trotzdem auf schlechte Programmierung hinweisen würde).
Ist das eine GUI-Software? Oder Hybrid? Das "schwarze DOS-Fenster" ist nur entweder dann möglich, wenn in einer /PM:PM-gelinkten Software kein "PROC AppSys();RETURN" enthalten ist (in diesem Fall müsste man das Fenster aber bei jedem Programmstart sehen) oder es sich um eine Hybridsoftware handelt, die dann z.B. per ? irgendwas irgendwo anzeigen will.
Ist das eine GUI-Software? Oder Hybrid? Das "schwarze DOS-Fenster" ist nur entweder dann möglich, wenn in einer /PM:PM-gelinkten Software kein "PROC AppSys();RETURN" enthalten ist (in diesem Fall müsste man das Fenster aber bei jedem Programmstart sehen) oder es sich um eine Hybridsoftware handelt, die dann z.B. per ? irgendwas irgendwo anzeigen will.
Herzlich,
Tom
Tom
- brandelh
- Foren-Moderator
- Beiträge: 15688
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Fehler: ".EXE reagiert nicht"
Ein RUN / RunShell() würde auch eine schwarze Box zusätzlich öffnen.
Gruß
Hubert
Hubert
- brandelh
- Foren-Moderator
- Beiträge: 15688
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Fehler: ".EXE reagiert nicht"
Code: Alles auswählen
Meines Wissens und meiner Nachforschung nach ist die APPsys jedoch nicht mehr in die VP.EXE eingebunden.
PRG / Funktion ins eigene Programm geändert werden. Wie Tom schon schrieb, überschreiben die beiden Zeilen die automatisch eingebundene Version
Code: Alles auswählen
PROC AppSys()
RETURN
Gruß
Hubert
Hubert
Re: Fehler: ".EXE reagiert nicht"
Hallo Werner
wenn Dein VP.EXE kein eigenes Window aufmacht, aber wenn es stehen bleibt ein schwarzes Fenster geöffnet wird mit dem Titel Deiner EXE (VP.EXE) würde folgendes vermuten:
Deine VP.EXE produziert eine Ausgabe mit ? / ?? (oder @ x,y Say/Get...), wegen einem Fehler im Programmablauf oder sonst einem Hinweis.
In diesem Moment wird zur Anzeige von Xbase++ das CRT geöffnet. Das war es dann.
Solche Fehler habe ich ab und zu wenn ich beim WAA Programmteile aufrufe die von mir für Hybrid gemacht wurden. Kommt es dann zu einem Problem (z.B. Datei nicht gefunden) taucht genau so ein schwarzes Fenster auf und das Programm bleibt stehen.
(Den Fehler habe ich zwar abgefangen, die Fehlermeldung ist aber für Hybrid gemacht und damit Ende des Programms...).
Um den Fehler sichtbar zu machen hilft nur, das CRT-/Hybrid-Fenster bereits beim Programmstart zu erstellen und zu öffnen.
wenn Dein VP.EXE kein eigenes Window aufmacht, aber wenn es stehen bleibt ein schwarzes Fenster geöffnet wird mit dem Titel Deiner EXE (VP.EXE) würde folgendes vermuten:
Deine VP.EXE produziert eine Ausgabe mit ? / ?? (oder @ x,y Say/Get...), wegen einem Fehler im Programmablauf oder sonst einem Hinweis.
In diesem Moment wird zur Anzeige von Xbase++ das CRT geöffnet. Das war es dann.
Solche Fehler habe ich ab und zu wenn ich beim WAA Programmteile aufrufe die von mir für Hybrid gemacht wurden. Kommt es dann zu einem Problem (z.B. Datei nicht gefunden) taucht genau so ein schwarzes Fenster auf und das Programm bleibt stehen.
(Den Fehler habe ich zwar abgefangen, die Fehlermeldung ist aber für Hybrid gemacht und damit Ende des Programms...).
Um den Fehler sichtbar zu machen hilft nur, das CRT-/Hybrid-Fenster bereits beim Programmstart zu erstellen und zu öffnen.