我正在使用NS2在C++中创建一些新类,然后将它们链接到otcl。链接和一切工作正常,但当我尝试在对象中使用otcl变量时,我遇到了麻烦。
例如,假设我有一个变量为X的类"Node“。在代码中,我想设置这个值,然后在一些if语句中使用它。
使用下面的代码设置变量是没有问题的:
$node1 set x 4现在我遇到的问题是,当我在任何地方使用这个变量x时。在C++中,我们可以使用一个通用变量(例如,y)并指定"y=node.x“,然后在一些if语句中使用y。我试图在otcl中寻找一种方法来执行同样的事情,但失败了。
任何帮助都是有价值的。
提前谢谢。
发布于 2010-05-04 19:59:50
感谢多纳尔的回答。但我找到了我真正需要的东西(它起作用了),如下所示:
set x [$class set y]发布于 2010-05-04 05:33:15
我认为您正在寻找OTclSetInstVar和OTclGetInstVar来分别写入和读取实例变量。它们是在otcl.h中定义的,这是一个普通的C头文件,如果您习惯于一般的Tcl,那么它们的用法应该非常明显。
如果您有一个构建在较新的XOTcl之上的NS2版本(我认为它来自XOTcl主要作者在过去几年中通过Google Summer参与的项目),那么这些API就是xotcl.h中的XOTclOSetInstVar和OTclGetInstVar (或者更确切地说,是包含在其中的)。但是,类型签名并不相同;它们只是逻辑上的临时替换,而不是实际的临时替换。(OTcl使用纯基于字符串的API,而XOTcl使用更高效但更复杂的Tcl_Obj-based API。)
https://stackoverflow.com/questions/2753298
复制相似问题