コンテキスト C/C++ から SWIG 経由で Tcl コールバックを呼び出したいです。さらに重要なことに、私はそれを閉鎖したいと思っています。
予備知識 http://computer-programming-forum.com/57-tcl/4481cebe0f09966d.htm (いいえ、それは私ではありません。Google 検索で十分に類似しているように見えた唯一のものです)
Python では、Python 側でオブジェクトを作成し、それに__call__
メソッドを与え、SWIG を介して PyObject* としてチャックします。それでも、Python でコーディングされているように (少しグルー コードを使用して) 非ローカル変数にアクセスできます。それが作成されたインタプリタと今でも密接にリンクしています。
私の理解 (ここで訂正してください) Tcl では、C から関数を呼び出す唯一の方法は、コマンドを表す文字列を渡すことによって新しいインタープリターを使用することです (しかし... クロージャーはどこにあるのでしょうか...?)。Tcl から C/C++ を呼び出している場合、C/C++ は呼び出し元の Tcl インタープリターを認識しないため、同じ問題が発生します。
Annnnddd... ドキュメント ( http://www.tcl.tk/man/tcl8.6/TclLib/contents.htm ) は広範囲ですが、... まあ、本当に広範囲です。集合知が私の無知から私を救ってくださいますように。
質問Tcl の名前が指している値を C/C++ からクロージャ/変更するにはどうすればよいですか? それとも、C/C++ コードを呼び出しているインタープリターのハンドルを取得するだけですか?