2011-05-12 144 views
0

我可以使一個可執行文件將函數的參數作爲命令行參數公開的方式是什麼? 我知道使用獲取命令行參數

int main(int argc, char **argv) 

有替代品嗎?是否可以從腳本語言(如JavaScript)調用此程序?

+0

是如果你正在使用C或C++,你可以得到命令行參數這種方式。不過,我很困惑,爲什麼你要把JavaScript帶入這個?你希望實現什麼? – 2011-05-12 22:36:43

+2

我想他問的是如何將除main之外的其他函數暴露給腳本語言,以便javascript可以像處理函數庫一樣處理他的程序。 – 2011-05-12 22:40:56

回答

1

main函數爲可執行文件提供了一個入口點。所以,答案是否定的,你不能簡單地公開一個函數,這個函數是從javascript這樣的腳本語言中調用的。

我知道的可能性,使訪問C或對某些腳本語言如Python和Ruby,Lua中,等C++庫和功能,如果你想將函數公開給任何一個我可以建議SWIGBoost::Pythonluabind 。我相信還有很多其他庫可以向腳本語言公開接口,並且誰知道甚至是JavaScript。

我希望我的問題吧:)

0

這是可能的。然而,這是非常不明智的建議(並且在可能的情況下並不傾向於支持的功能)。將本機可執行代碼暴露給任何這樣的腳本可能會非常非常糟糕。

恐怕這種情況非常像爲未成年人購買啤酒......我知道你會去嘗試去做,但我不會成爲一個促成你的拖欠。

(雖然嚴重,不這樣做,研究如何與庫擴展你的腳本語言,像@Constantinius上面推薦)。

祝你好運!

0

你需要編寫程序的DLL(Windows)中或.so(UNIX)文件,不具有一個main()。要提醒的是一個腳本語言通常需要包裝代碼的腳本語言變量和公約下之間進行轉換。雖然許多腳本語言都寫在C,你不能傳遞變量兩者之間的直接沒有某種形式的轉換。