2011-05-12 153 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,你不能传递变量两者之间的直接没有某种形式的转换。