Obter diferente do nível de erro de exe
-
19-09-2019 - |
Pergunta
É possível obter um valor de retorno diferente de nível de erro de .net exe? O exe é para ser chamado de um script, lote ou rexx.
Se não, você também pode chamar um método em uma montagem de lote ou rexx e recuperar um valor de retorno?
Solução
A entrada (e saída) Ponto de qualquer .NET executável é o método principal , que tem de ser um método estático declarado com qualquer um void
ou retorno int
tipo.
Por esta razão, você não pode retornar diretamente outra coisa senão uma int
.
Este valor int
é o nível de erro (por convenção, 0 significa bem-sucedida).
Você pode ainda em sua gravação do programa para um arquivo "status" que permitirá que você para escrever o que quiser e ler a partir dele.
Outras dicas
contexto Em C / C ++ Depende da assinatura do método principal (). Mas é obrigatório que o retorno deve ser int. Então a sugestão de oded é uma tentativa vale a pena
Uma solução alternativa possível é ter o seu método .net imprimir uma string para stdout que cam ser redirecionado para rxqueue.exe que coloca a saída em um lugar onde rexx pode encontrá-lo. Então, em seu invólucro rexx, espera no retorno e quando chega tração da fila.
'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 */