2010-03-10 29 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