0

私は NS2 を使用して C++ でいくつかの新しいクラスを作成し、それらを otcl にリンクしています。リンケージとすべてが機能しますが、オブジェクトで otcl 変数を使用しようとすると、問題が発生します。

たとえばNode、変数 を持つクラス " " があるとしますX。コードでは、この値を設定し、後でいくつかの if ステートメントで使用したいと考えています。

このコードを使用すると、変数を設定しても問題ありません。

$node1 set x 4

今私が抱えている問題は、この変数 x をどこでも使用しようとするときです。C++ では、一般変数 (つまり) を使用して " "yと言ってから、いくつかの if ステートメントで使用できます。otcl で同じことを実行する方法を探しましたが、失敗しました。y=node.xy

どんな助けでも感謝します。

前もって感謝します。

4

2 に答える 2

1

答えてくれてありがとうドナル。しかし、私は本当に必要なものを見つけました (そしてそれはうまくいきました)。それは次のようなものです:

set x [$class set y]
于 2010-05-04T11:59:49.873 に答える
0

インスタンス変数をそれぞれ探し、読み書きしていると思いOTclSetInstVarますOTclGetInstVar。これらは、プレーンな C ヘッダー ファイルである で定義されておりotcl.h、一般的な Tcl API に慣れている場合は、その使用法は明らかです。

新しい XOTcl の上に構築された NS2 のバージョンを持っている場合 (これは、XOTcl の主な作成者が過去数年間に Google Summer of Code を通じて関与しているプロジェクトから存在すると私が収集したものです)、API は次のとおりXOTclOSetInstVarですOTclGetInstVar。 (というか、オフに含まれています)xotcl.h。ただし、型シグネチャは同じではありません。それらは論理的にドロップインの代替品であり、実際のドロップインではありません。(OTcl は純粋な文字列ベースの API を使用し、XOTcl ははるかに効率的ですが複雑なTcl_Objベースの API を使用します。)

于 2010-05-03T21:33:15.297 に答える