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