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?

War es hilfreich?

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.

wird

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 */
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top