2009-04-25 101 views
3

我希望能夠從shell中執行以下一項或多項操作: - 從程序中調用任何函數,而不僅僅調用主要的 - 傳遞不僅是字符串(不僅是字符串) - 的參數 - 程序返回不僅是int(來自main的返回碼) - 將返回的值分配給shell級變量以便能夠將它們傳遞給其他程序有執行程序和調用函數統一的系統嗎?

您明白了。例如python toplevel允許python程序使用這個。 C++呢? 或在Linux上的ELF替代品,將允許?

回答

2

如果你在尋找一個操作系統,這是否 - VxWorks的外殼/ C解釋這一點。

但是,它的VxWorks - 實時操作系統(無GUI)。

2

想出一個應用程序並不困難,它允許你從動態庫(如Windows下的DLL)的名稱調用某些函數,前提是這些函數只接受有限的參數類型選擇,例如ints,float和fixed字符串。

然而,對於大多數的C++程序,這是不夠的。例如,假設你的C++函數將sd :: std :: map的動態字符串作爲參數傳遞給套接字 - 你將如何創建這個地圖,不要在你的shell中說明它的內容?

但如果你能放棄C++,有一種語言暨操作系統,不正是你的建議是什麼 - Smalltalk的。如果你對這個範例感興趣,可以看看免費軟件Squeak

+1

已經有像Windows上的程序:RUNDLL32.EXE – 2009-04-25 14:13:50

+0

事實上,這將與提供某種REPL,例如任何基於圖像的環境中工作一些Common Lisp實現。你只需要編寫一些包裝公共系統調用的函數。 – Svante 2009-04-25 14:20:06

0

系統將不得不完全解釋,對嗎?你怎麼知道你所打電話的功能簽名?

2

在Windows下,有RUNDLL32調用DLL中的函數,例如

RUNDLL32.EXE USER32.DLL,SwapMouseButton