Erhalten Sie andere als Fehlerniveau von exe
-
19-09-2019 - |
Frage
Ist es möglich, einen anderen Rückgabewert als Fehlerniveau von .net exe zu bekommen? Die exe ist aus einem Skript, Chargen- oder rexx aufgerufen werden.
Wenn nicht, können Sie eine Methode in einer Baugruppe von Charge oder rexx aufrufen und einen Rückgabewert abrufen?
Lösung
Der Eintrag (und Ausfahrt) Punkt jeder .NET ausführbaren ist die Hauptmethode , hat das eine statische Methode deklariert entweder mit einem void
oder int
Rückgabetyp.
Aus diesem Grund können Sie nicht direkt etwas zurückgeben anderes als ein int
.
Dieser int
Wert ist die Fehlerebene (von der Konvention, 0 bedeutet, erfolgreich).
können Sie noch in Ihrem Programm schreiben, um eine „Status“ Datei, die Sie erlauben, zu schreiben, was Sie wollen und von ihnen lesen.
Andere Tipps
In C / C ++ Kontext Es hängt von der Unterzeichnung der Methode main (). Aber es ist zwingend erforderlich, dass die Rückkehr int sein sollte. So Oded Vorschlag ist ein Versuch wert
Eine mögliche alternative Lösung ist Ihre .NET-Methode eine Zeichenfolge drucken müssen stdout, die umgeleitet werden Nocken rxqueue.exe, welche die Ausgabe an einem Ort platziert, wo rexx es finden kann. Dann in Ihrem rexx Wrapper, warten auf die Rückkehr und wenn sie aus der Warteschlange ziehen ankommt.
'external.exe | rxqueue'
line. = ''
ndx = 0
do while queued() > 0
ndx = ndx + 1
parse pull line.ndx
end
line.0 = ndx /* this is unnecessary but is a common practice to store the
stem size in leaf 0 */
/* now deal with your results */