我希望能够从shell中执行以下一项或多项操作: - 从程序中调用任何函数,而不仅仅是main - 传递不仅仅是字符串的参数(不仅仅是argv) - 让程序返回不仅是int(来自main的返回码) - 将返回值分配给shell级变量,以便能够将它们传递给其他程序
你明白了。 例如python toplevel允许这个用于python程序。 那么C ++呢? 或者Linux上的ELF替换允许这样做?
答案 0 :(得分:2)
如果您正在寻找执行此操作的操作系统,则vxWorks shell / C解释器会执行此操作。
但是,它是vxWorks - 一个实时操作系统(没有GUI)。
答案 1 :(得分:2)
创建一个允许您通过动态库(如Windows下的DLL)按名称调用某些函数的应用程序并不太难,只要这些函数只采用有限的参数类型选择,例如整数,浮点数和固定字符串
但是,对于大多数C ++程序来说,这还不够。例如,假设您的C ++函数将动态字符串的s std :: map作为参数获取 - 您将如何创建映射,而不是在shell中对其内容进行任何说明?
但是如果你可以放弃C ++,那么有一种语言和操作系统完全符合你的建议 - Smalltalk。如果您对此范例感兴趣,请查看Squeak,这是免费软件。
答案 2 :(得分:2)
在Windows下,有RUNDLL32来调用DLL函数,例如
RUNDLL32.EXE USER32.DLL,SwapMouseButton
答案 3 :(得分:1)
你看过c-repl吗?
答案 4 :(得分:0)
系统必须完全解释,对吧?你怎么知道你所调用的东西的功能签名?