問題タブ [tcl-api]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
271 参照

c++ - TCL API を使用してパッケージの自動ロードを有効にする C++ アプリケーション

のすべての ActiveTcl パッケージのパッケージの自動読み込みを有効にする C++ アプリケーションを作成したいと考えていますC:\Tcl\lib。以下の tcl コマンドをTcl_Eval()C++ コードに渡します。package require <package name>そして、" " が自動的にパッケージを見つけてロードすることを期待します。

しかし、TCL シェルで行うようには機能しませんでした。TCL シェルはpkgIndex.tclauto_path を検索するため、" package require" の場合、適切なパッケージまたは共有ライブラリを見つけることができます。C++ アプリケーションで動作させることは可能ですか? または何か良い方法はありますか?

0 投票する
1 に答える
448 参照

c++ - Tcl C++ API - void ポインターを安全に変換する方法

コードでTcl_CreateObjCommand(interp, cmdName, proc, clientData, deleteProc)を使用し、DerivedClass ポインターを clientData パラメーターに渡しています。コールバック関数で、clientData を DerivedClass ポインターに安全に変換 (dynamic_cast) したいのですが、gcc コンパイラーが " source is not a class to pointer" とエラーを出しています。これは、clientData が void ポインターの型であるためです。この使用例では、開発者は通常、Tcl API を使用するときにこの問題をどのように処理しますか?

0 投票する
1 に答える
157 参照

c++ - Tcl ライブラリおよび/または Tcl 内部を使用する Tcl スクリプト非計測デバッガ?

Tcl ライブラリ API および/または Tcl 内部インターフェイスを使用して Tcl スクリプト デバッガーをビルドできるかどうかを知りたいです (そうするのに十分なデータが含まれているかどうかを意味します)。既存の tcl デバッガーが tcl スクリプトを計測し、この追加レイヤーで動作することに気付きました。私の考えは、Tcl_CreateObjTrace評価されたすべてのコマンドをトレースし、それをコールスタック、ローカルなどを取得するポイントとして使用することでした。問題は、評価時に API からすべての情報にアクセスできるとは限らないことです。たとえば、どの行が現在評価されているかを知りたいのですが、Interpそのような情報は上位の評価についてのみあります(iPtr->cmdFramePtr->lineプロシージャの本体では空です)。誰もそのようなアプローチを試みましたか?意味はありますか?ハッシュ化されたエントリを調べる必要があるかもしれませんInterp? 手がかりや意見をいただければ幸いです (Tcl 8.5 に最適です)。

0 投票する
1 に答える
65 参照

c - Tcl_Filesystem を複製に置き換えると、tcl の「open」コマンドが機能しない

Tclapi を使用して Tcl 用のカスタム ファイルシステムを作成しようとしています (これは作業に関連しているため、詳細には触れません)。

このコード セグメントでは、オリジナル/ネイティブの Tcl_Filesystem を取得し、そのすべての内容 (関数ポインター) を my_fs にコピーしてから、my_fs で Tcl_FSRegister を呼び出しています。非常に単純で、うまくいくはずだと思いました。

走ったとき

しかし、私はこれを得る

「puts [pwd]」は機能するが、「open test.txt」は機能しないことに注意してください。

Tcl_FSRegister への呼び出しで「my_fs」を「ori_fs」に置き換えるとうまくいくようです...これを理解するために、すでに多くの時間を費やしてきました。誰かがこれで私を助けてくれれば幸いです!