0

C++ GUI アプリケーションを構築するための適切なアプローチを探しています。そのコアは、大量の Tcl コードを生成し、Tcl C++ API を介して実行します ( #include <tcl.h>)。GUI は、ユーザーがこれらの tcl スクリプト タスクを完了するための簡単な方法を提供します。

つまり、GUI コントロールに関連付けられた各コールバック関数内では、ostringstream を使用して Tcl コードを入力し、それを Tcl インタープリターに渡すようなものです。例えば:

bool execTclProc1(options) {
  ostringstream oss;
  oss << "package require MyPackage \n";
  string optionsForTcl = genOptionsForTcl(options);
  oss << "myTclProc1 " << optionsForTcl << endl;

  if(Tcl_Eval(interp, oss.c_str() == TCL_OK) {
    // print out some messages to the GUI message window
  }

  ...
}

このデザインのマイナス面:

  • デバッグが困難な Tcl コード エラー。Tcl コードを変更するたびに、C コードを再コンパイルする必要があるためです。手っ取り早い方法は、Tcl インタラクティブ シェルで Tcl コードを記述してテストすることです。しかし、多くの tcl コードは、ハードコーディングされたものではなく、C++ で作成されています。ですから、それほど実現可能ではありません。

  • Tcl コードのすべてが C++ ルーチンで記述されています。これにより、維持が困難になります。

コミュニティからいくつかの洞察を求めたいと思います。

4

1 に答える 1

1

C ++からライブラリ関数として呼び出されるTkツールキットを使用できませんか?

また、Tk /C++もあります-それがどれほど優れているかわかりません。それらは演算子をオーバーロードし、式テンプレートを使用して、C++コードがTclのようになるようにします。かなりクール!

于 2012-08-23T20:07:53.633 に答える