Получить другой уровень, чем ошибка, из exe
-
19-09-2019 - |
Вопрос
Возможно ли получить возвращаемое значение, отличное от уровня ошибки, из .net exe?Исполняемый файл должен быть вызван из скрипта, пакета или rexx.
Если нет, можете ли вы вызвать метод в сборке из batch или rexx и получить возвращаемое значение?
Решение
Точка входа (и выхода) любого .NET исполняемый файл - это основной метод, который должен быть статическим методом , объявленным либо с void
или int
возвращаемый тип.
По этой причине вы не можете напрямую возвращать что-либо, кроме int
.
Это int
значение - это уровень ошибки (по соглашению, 0 означает успешный).
Вы все еще можете в своей программе выполнять запись в файл "status", который позволит вам записывать все, что вы хотите, и читать из него.
Другие советы
В контексте C / C ++ это зависит от сигнатуры метода main().Но обязательно, чтобы возвращаемое значение было int.Так что предложение одеда стоит попробовать
Возможное альтернативное решение - заставить ваш .net-метод напечатать строку в stdout, на которую будет перенаправлен cam rxqueue.exe который помещает выходные данные в место, где rexx может их найти.Затем в вашей оболочке rexx дождитесь возврата и, когда он прибудет, извлеките из очереди.
'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 */