問題タブ [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.
c++ - TCL API を使用してパッケージの自動ロードを有効にする C++ アプリケーション
のすべての ActiveTcl パッケージのパッケージの自動読み込みを有効にする C++ アプリケーションを作成したいと考えていますC:\Tcl\lib
。以下の tcl コマンドをTcl_Eval()
C++ コードに渡します。package require <package name>
そして、" " が自動的にパッケージを見つけてロードすることを期待します。
しかし、TCL シェルで行うようには機能しませんでした。TCL シェルはpkgIndex.tcl
auto_path を検索するため、" package require
" の場合、適切なパッケージまたは共有ライブラリを見つけることができます。C++ アプリケーションで動作させることは可能ですか? または何か良い方法はありますか?
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 を使用するときにこの問題をどのように処理しますか?
c++ - Tcl ライブラリおよび/または Tcl 内部を使用する Tcl スクリプト非計測デバッガ?
Tcl ライブラリ API および/または Tcl 内部インターフェイスを使用して Tcl スクリプト デバッガーをビルドできるかどうかを知りたいです (そうするのに十分なデータが含まれているかどうかを意味します)。既存の tcl デバッガーが tcl スクリプトを計測し、この追加レイヤーで動作することに気付きました。私の考えは、Tcl_CreateObjTrace
評価されたすべてのコマンドをトレースし、それをコールスタック、ローカルなどを取得するポイントとして使用することでした。問題は、評価時に API からすべての情報にアクセスできるとは限らないことです。たとえば、どの行が現在評価されているかを知りたいのですが、Interp
そのような情報は上位の評価についてのみあります(iPtr->cmdFramePtr->line
プロシージャの本体では空です)。誰もそのようなアプローチを試みましたか?意味はありますか?ハッシュ化されたエントリを調べる必要があるかもしれませんInterp
? 手がかりや意見をいただければ幸いです (Tcl 8.5 に最適です)。
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」に置き換えるとうまくいくようです...これを理解するために、すでに多くの時間を費やしてきました。誰かがこれで私を助けてくれれば幸いです!