TCLをC++で拡張していますが、コマンドを削除しようとすると、コマンドの作成時に指定されたTcl_CmdDeleteProcが呼び出されます。 Tcl_CmdDeleteProcが呼び出されると、クライアントデータのみがTcl_CmdDeleteProcに供給されます。私は、Tcl_CmdDeleteProcで破壊されるコマンドの名前を知りたいのですが、これは可能ですか?TCL削除するコマンドの名前を取得する
0
A
答えて
0
これは可能ですが、少し難しいことです。
コマンドのdeleteコールバックを使用している場合は、まずそれを作成しておく必要があります(他の人が作成したコマンドの削除コールバックを挿入すると非常に悪いフォームです)。 clientData
は実際にあなたがコントロールする構造体へのポインタになります。コマンドを作成したときに得たTcl_Command
トークンをどこかの構造体に置くと、コマンドが削除されたときにそれを釣り上げて、Tcl_GetCommandName
またはTcl_GetCommandFullName
と一緒に使用して、コマンドの現在の名前を取得できます。 (削除コールバックは、コマンドにまだ名前がついているところにあります)
非常に注意してください! deleteコールバックは、コマンドが実際に部分的にしか存在しないときに呼び出されます。注意しないとクラッシュを引き起こす可能性があります。コールバックからコマンドを呼び出したり、名前を変更したり、コマンドを削除したりしないでください。おそらくコマンドのトレースを設定して、名前の変更を通知する方がよいでしょう。 (これは、名前の変更や制御できないコマンドの削除について調べるためのメカニズムでもあります)。これは、これらのトレースがわずかに早く発生するためです。
関連する問題
- 1. コマンドの内容を取得する方法TCL
- 2. tclファイルから重複する行を削除して別のtclファイルに出力するawkコマンド
- 3. 削除名前空間は、名前空間を削除するコードやXSLT
- 4. ベースブランチの名前を取得するgitコマンド
- 5. テキストファイルから名前を削除する
- 6. ファイルを削除してリストから名前を削除する
- 7. TCL:変数で実行するtclコマンド
- 8. ノードレベルで削除する名前空間
- 9. TCLは-nohangオプションのようなコマンドを取得しますか?
- 10. TCL私が所属するproc名を取得
- 11. パスを削除してファイル名を取得する方法
- 12. WordPress:名前と公開名の登録フィールドを削除する
- 13. 名前空間名に変数tclを使用する
- 14. ViewControllerの名前を取得する
- 15. 端末の名前を取得する
- 16. ファイルの名前を取得する
- 17. パラメータオブジェクトの名前を取得する
- 18. フィルタの連絡先の名前を削除してメールアドレスを削除する
- 19. 文書 - タグの名前を名前で取得する方法
- 20. コマンドを使用して壁紙の名前を取得する方法は?
- 21. Cでダウンロードする前にバイナリファイルの名前を取得する
- 22. ColdFusion:アップロードする前にファイルの名前を取得する
- 23. 削除、名前空間
- 24. 同じ名前で異なるパスのクッキーを削除する
- 25. java enumを名前で取得する
- 26. 名前でクラスを取得する
- 27. React.jsコンポーネントを名前で取得する
- 28. regex mircを使ってタグを削除する文字列の名前だけを取得しますか?
- 29. 名前のついた列をすべて削除する
- 30. TCL内の名前空間にprocをコピーする