执行存储在字符串中的函数

Executing functions stored in a string

假设我的 Delphi 应用程序中有一个功能:

MsgBox 并且有一个包含 MsgBox 的字符串。

我知道你们大多数人会说这是可能的,但我认为这是可能的,因为我使用资源编辑器打开了编译后的 exe(使用 delphi XE2 编译),并且那个资源编辑器是为 Delphi 构建的。在那里,我可以看到 most 我写的代码,就像我写的那样。因此,由于变量名称、函数名称等在编译期间没有更改,因此应该有一种方法可以从字符串中执行函数,但是如何呢?任何帮助将不胜感激。


编辑:

我想做的是创建一个简单的 interpreter/scripting 引擎。这就是它的工作原理:

有两个文件,scr.txt和arg.txt

现在让我解释一下 0 是什么:

我希望我的问题现在很清楚了。

I want to make a simple scripting engine.

为了执行存储为文本的任意代码,您需要编译器或解释器。您需要自己编写一个,或者嵌入一个已经存在的。实际上,后一种选择是您的最佳选择。有一些可用的数字,但在我看来很难看过去 dwscript

我想我已经解决了我的问题!答案在 this 问题的第一个答案中。

编辑:
但是,至于第一条评论中提到的问题的解决方法,我有一个非常简单的解决方案。
您不需要将 all 和 arguments/parameters 传递给它。以我为例:
如问题中所述,您有两个文件。现在您需要执行这些文件。就是这么简单:
阅读 scr.txt
的第一行 检查它是否是一个函数。如果没有,跳过行
如果是,请阅读下一行,它告诉索引它的参数在 arg.txt
中的位置 将索引(整数)传递给 "Call" 函数。
现在对于必须执行的函数,它应该知道它需要多少个参数。即 2
假设函数是 "Sum(a,b : integer)"。它需要 2 个参数
现在让函数从 arg.txt.
读取两个参数 完成了!
希望对大家有所帮助
我可以得到一些代表 :)