2010-03-10 30 views
0

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

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

+1

错误级别*是*返回值。 – Lazarus 2010-03-10 13:00:15

回答

5

任何.NET可执行文件的入口(和出口)点是main method,它必须与无论是voidint返回类型被声明为静态方法。

因此,您不能直接返回除int以外的其他任何内容。

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

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

+0

我也这么想。将继续你的建议。 – magnus 2010-03-10 13:22:27

1

在C/C++上下文中它取决于main()方法的签名。但是强制返回应该是int。因此,俄德的建议是值得一试

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 */ 
+0

稍迟,但感谢替代解决方案。 – magnus 2013-01-07 08:50:38