Ottenere diverso livello di errore da exe
-
19-09-2019 - |
Domanda
E 'possibile ottenere un valore di ritorno diverso livello di errore da exe .net? L'exe è di essere chiamato da uno script, batch o REXX.
In caso contrario, si può richiamare un metodo in un assembly da lotti o REXX e recuperare un valore di ritorno?
Soluzione
L'ingresso (e uscita) punto di qualsiasi eseguibile .NET è la href="http://www.functionx.com/csharp2/topics/main.htm" rel="nofollow noreferrer"> principale metodo , che deve essere un metodo statico dichiarato ad un tipo di void
o il ritorno int
.
Per questo motivo, non è possibile tornare direttamente qualcosa di diverso da un int
.
Questo valore int
è il livello di errore (per convenzione, 0 significa riuscito).
È ancora possibile nel vostro programma di scrittura per un file "status" che vi permetterà di scrivere quello che vuoi e leggere da esso.
Altri suggerimenti
In C / C ++ contesto Dipende dalla firma del metodo main (). Ma è obbligatorio che il ritorno dovrebbe essere int. Quindi il suggerimento di Oded vale la pena provare
Una possibile soluzione alternativa è quella di avere il metodo .NET stampare una stringa allo stdout che CAM essere reindirizzato a rxqueue.exe che pone l'output in un luogo dove REXX può trovare. Poi, nel tuo involucro REXX, attendere sul ritorno e quando arriva tirare dalla coda.
'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 */