Fehler: ".EXE reagiert nicht"

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

Antworten
Werner
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 118
Registriert: Sa, 18. Mär 2006 16:08

Fehler: ".EXE reagiert nicht"

Beitrag von Werner »

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
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
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"

Beitrag von Tom »

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.
Herzlich,
Tom
Benutzeravatar
brandelh
Foren-Moderator
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"

Beitrag von brandelh »

Ein RUN / RunShell() würde auch eine schwarze Box zusätzlich öffnen.
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
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"

Beitrag von brandelh »

Code: Alles auswählen

Meines Wissens und meiner Nachforschung nach ist die APPsys jedoch nicht mehr in die VP.EXE eingebunden.
die Datei AppSys.PRG ist grundsätzlich im Projekt enthalten (wohl in einer Laufzeit DLL) und kann nur mit dem Einbinden der
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
Dann muss man aber natürlich auch selbst für die Fenster sorgen (XbpDialog()) ... in der normalen AppSys wird für die Clipper Kompatibilität ein CRT (PM) oder Consolen (VIO) Fenster geöffnet.
Gruß
Hubert
DelUser01

Re: Fehler: ".EXE reagiert nicht"

Beitrag von DelUser01 »

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.
Antworten