xWizard

xWizardは、Tcl拡張のスケルトンコードをウィザード形式で簡単に作成するためのGUIです。
C言語またはC++言語に対応しています。生成されたコードはgccやVC++でコンパイルできます。

動作環境

xWizardは100% Pure Tclで作られているので、マルチプラットフォームで動作します。
xWizard 2.0を動作させるには、Tcl/Tkと以下の拡張パッケージが必要です。 これらのパッケージは、Tclのlib以下にインストールする必要があります。

(例)
Tcl83/
    lib/
        tkwizard1.0/
        wizard2.0/
        tktable2.7/

使ってみよう

xwizard.tclを起動すると以下のウィザード画面が表示されます。
Nextボタンを押して先に進みます。

プラットフォームと言語とスタブを選択します。 スタブの三択の意味は以下の通りです。

通常はallを選べばよいでしょう。
Nextボタンを押して先に進みます。

パッケージ名、namespace名、パッケージのバージョン、インクルードファイルを指定します。
コマンドリストには、複数のコマンド名を指定します。以下はWindowsプラットフォームの例です。
パッケージ名の先頭だけ英大文字で入れるのがミソです。
Nextボタンを押して先に進みます。

これでソースコードが生成されます。Show Template Codeボタンを押してコードを確認できます。
問題がなければ、Finishボタンを押して先に進みます。

ソースコードを保存するためのダイアログが表示されます。
ファイルの種類のところが、TCL Script (*.tcl)となっていますが、
気にせずに、ファイル名(xxx.c または xxx.cpp)を入力して保存ボタンを押します。

以上で終了です。
このケースで、74行のC++言語のスケルトンコード(sample.cpp)が生成されました。

コンパイル

生成されたソースコードをコンパイルしてみます。
残念ながらMakefileまでは生成してくれないので、手動でコンパイルします。
VC++でもコンパイルできますが、以下はgccでコンパイルする例です。
Windows環境では、MSYS & MinGWを使います。

$ gcc sample.cpp -o sample.dll -O2 -shared -ltclstub83 \
	-Ic:/progra~1/tcl83/include -Lc:/progra~1/tcl83/lib

コンパイルが正常終了するとsample.dllが出来ます。

動作確認

作成したsample拡張の動作確認をします。
pkgIndex.tclまでは生成してくれないので、loadコマンドで確認します。

load sample.dll
::sample::hello
=> This is the result.

このように表示されれば成功です。
TclのTEAやスタブの概念を理解していなても拡張が作成できるのは◎ですね。

参考文献


xWizard