Вопрос

Возможно ли получить возвращаемое значение, отличное от уровня ошибки, из .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 */
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top