Получить кроме уровня ошибки от exe - PullRequest
0 голосов
/ 10 марта 2010

Можно ли получить возвращаемое значение, отличное от уровня ошибки, из .net exe? Exe должен вызываться из скрипта, пакета или rexx.

Если нет, можете ли вы вызвать метод в сборке из пакета или rexx и получить возвращаемое значение?

Ответы [ 3 ]

5 голосов
/ 10 марта 2010

Точкой входа (и выхода) любого исполняемого файла .NET является основной метод , который должен быть статическим методом, объявленным с типом возврата void или int.

По этой причине вы не можете напрямую вернуть ничего, кроме int.

Это значение int является уровнем ошибки (условно, 0 означает успешное выполнение).

Вы все еще можете в своей программе записывать в «статусный» файл, который позволит вам писать что угодно и читать из него.

1 голос
/ 08 июня 2012

Возможное альтернативное решение состоит в том, чтобы ваш метод .net печатал строку в stdout, которую можно перенаправить в 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 */
1 голос
/ 10 марта 2010

В контексте C / C ++ Это зависит от сигнатуры метода main (). Но обязательно, чтобы возвращение было int. Предложение Одеда стоит попробовать

...