从一个解释器中获取tcl命名空间的内容,并将其传递给另一个解释器

Grab the content of tcl namespace from one interpreter and pass to another interpreter

本文关键字:解释器 另一个 命名空间 一个 tcl 获取      更新时间:2023-10-16

我使用cpptcl.hpp库来创建TCL解释器并计算一些表达式。现在我遇到了一个问题:在一个解释器(Tcl::interp1;)中,我在一个口译员中有一个名为MyNamespace的命名空间,其中定义了一些变量和过程,我希望能够通过使用MyNamespace命名空间中预定义的变量和过程来评估另一个解释器中的一些Tcl表达式(Tcl:::interp2;)。我该怎么做?

你不能。至少,这并不容易。

当然,如果您的interp只包含纯Tcl代码,并且没有加载任何包,那么原则上,您可以将所有内容序列化(到字符串),并在另一个interp中对其进行求值;维基上有关于这方面的例子(搜索"保存状态"等)。

但在我看来,你似乎在试图创建一个"引用"interp,然后将其用作一种模板。如果是这样的话,我只会写一个代码来设置interp,然后每次调用它来获得一个适当准备的interp。

相关文章: