在单独的文件中执行命令

时间:2015-11-29 11:41:15

标签: c++ batch-file embed

是否可以存储"命令"在一个单独的文件中,只要输入该文件的名称就调用它?

让我们说:文件help包含代码:cout << "This is help file."; 那么是否可以获取文件内容而无需在其中创建函数,直接采取行动,就像在Lua中一样?

  

修改

好吧,我正在学习C ++,所以嵌入Lua对我来说没有意义,但这对我未来的项目来说是个好主意,谢谢。

我想要做的是模拟命令行操作系统。像ComputerCraft这样的东西。基本上你输入一个命令,程序然后查找一个与用户输入同名的实际文件,如果找到它执行它的内容。这一切都是在运行时完成的,检查文件,执行,添加新的等等。

喜欢的东西 在控制台中:

> help

程序检查名为help的文件,如果找到则执行它 help的内容:

cout << "type help for help, programs for list of programs etc";

我希望以这种方式创建一个新的&#34;命令&#34;从该模拟操作系统直接输入文件,并自动使用它,尽可能少用户。

我以前在lua中做过,我想知道如何以及在C ++中是否可行 我在Love2D工作,它有一个函数love.filesystem.load(filename)基本上它做了什么,它创建了一个函数,它具有文件的内容作为它的容器,你为它指定一个名称function = love.filesystem.load(filename)然后将其作为普通函数执行。我寻求的东西等同于它。

1 个答案:

答案 0 :(得分:1)

如果要在文件中执行脚本,则需要使用现有的脚本语言并在程序中包含解释器,或者创建自己的脚本语言并编写如何解释它的代码。

如果您希望文件包含在运行时执行的C ++代码,则这是不可能的,因此您将被告知。实际上并非不可能;告诉你技术错误的人。但这非常困难,绝对不是初学者的项目。

您需要在程序中包含一个完全成熟的C ++编译器,在运行时编译文件中的代码并执行结果。当程序试图这样做时,一些病毒扫描程序会感到不快。 (有时候我会在Visual Studio中抱怨我的创作!)

或者你需要一个运行时C ++解释器。如果存在这样的事情,我会非常有兴趣了解它!

实际上,您可以期待的最好的解释器是可以使用非常有限的C ++子集。