让我们说我的Delphi应用程序中有一个功能:
MsgBox
并且有一个字符串,其中包含MsgBox
。
我知道你们大多数人会说它可能,但我认为这是可能的,因为我使用资源编辑器打开了编译的exe(使用delphi XE2编译),并且该资源编辑器是为Delphi构建的。在那里,我可以看到我编写的代码中的大多数。因为变量名称,函数名称等在编译期间没有改变,所以应该有一种从字符串执行函数的方法,但是如何?任何帮助将不胜感激。
修改
我想要做的是创建一个简单的解释器/脚本引擎。这就是它应该如何运作:
有两个文件,scr.txt和arg.txt
scr.txt包含:
msg_show 0
arg.txt包含:
"Message"
现在让我解释一下0是什么:
我希望我的问题现在清楚了。
答案 0 :(得分:2)
我想制作一个简单的脚本引擎。
为了执行以文本形式存储的任意代码,您需要编译器或解释器。您需要自己编写一个,或嵌入已存在的一个。实际上,后一种选择是您的最佳选择。有一些可用,但在我看来,很难看过dwscript。
答案 1 :(得分:-3)
我想我已经解决了我的问题!答案在this问题的第一个答案中
修改:
但有了这个,至于第一个评论中提到的问题的解决方法,我有一个非常简单的解决方案。
您不需要将所有参数/参数传递给它。举个例子:
您有两个文件,如问题中所述。现在您需要执行这些文件。它很简单:
阅读scr.txt的第一行
检查它是否是一个功能。如果没有,请跳过线路
如果是,请阅读下一行,告诉索引它的参数在arg.txt中的位置
将索引(整数)传递给" Call"功能。
现在对于必须执行的函数,它应该知道它需要多少个参数。即2
假设函数是" Sum(a,b:integer)"。它需要2个参数
现在让函数从arg.txt中读取两个参数
它完成了!
我希望它能帮到你们所有人
我可以得到一些代表:)