0

是否可以从 .net exe 获取错误级别以外的返回值?该 exe 将从脚本、批处理或 rexx 中调用。

如果没有,您可以从批处理或 rexx 调用程序集中的方法并检索返回值吗?

4

3 回答 3

5

任何 .NET 可执行文件的入口(和出口)点都是main 方法,它必须是使用 avoidint返回类型声明的静态方法。

因此,您不能直接返回除int.

int值是错误级别(按照惯例,0 表示成功)。

您仍然可以在您的程序中写入一个“状态”文件,该文件将允许您编写任何您想要的内容并从中读取。

于 2010-03-10T13:03:07.450 回答
1

在 C/C++ 上下文中它取决于 main() 方法的签名。但返回值必须是 int。所以oded的建议值得一试

于 2010-03-10T13:01:16.583 回答
1

一种可能的替代解决方案是让您的 .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 */
于 2012-06-08T12:46:49.610 回答