是否可以从.net exe获取错误级别以外的返回值? exe是从脚本,批处理或rexx中调用的。
如果没有,你可以从批处理或rexx中调用程序集中的方法并检索返回值吗?
答案 0 :(得分:5)
任何.NET可执行文件的入口(和出口)点都是main method,它必须是使用void
或int
返回类型声明的静态方法。
因此,您无法直接返回int
以外的任何内容。
此int
值是错误级别(按照惯例,0表示成功)。
您仍然可以在程序中写入“状态”文件,该文件允许您编写任何您想要的内容并从中读取。
答案 1 :(得分:1)
在C / C ++上下文中它取决于main()方法的签名。但必须返回int。所以oded的建议值得一试
答案 2 :(得分: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 */