Yamasaki最新Tclkit事情コメントを残すTcl/Tkのスクリプトを単体実行ファイルとして配布するのに使うTclkitは、ActiveTclと一緒に配布されるbasekitというのを使っておけば、検証済みの最新バージョンなので問題は少ないのですが、日本語パスやスペースを含むパスから実行しようとするとエラーになるという、何とも前時代的な制約があります。これはフリーソフトとして配布するソフトを作る時にはちょっと受け入れがたいです。そこで、その他のTclkitを手に入れるか、自分でビルドするわけですが。ものすごくサイズにこだわりがなければ、今時はKitCreatorのページで出来合いのものを取ってくるのが無難な入手方法です。手動ビルド版http://tclkits.rkeene.org/fossil/wiki/Downloads自動ビルド版(最新版)http://www.rkeene.org/devel/kitcreator/kitbuild/nightly/ダウンロードファイルに拡張子.exeをつけます。サイズが大きいので、upxという実行ファイル圧縮ツールを使って小さくするのがお勧めです。Standardで標準化されているHSMS-SS/SECS-IIというプロトコルが使われるのが一般的なのだが、このデバッグツール類はお高いものが多い。pluginを探すしかない。dissectorはDLLまたはLuaスクリプトとして追加できるらしい。迷い庭というか、ここに古いpluginのソースコードが置いてあった。bug古くて動作はしないけど、参考にはなりそう。今はLuaで書いたほうがいいんだろうか。assemblyコメントを残すSQLiteのアカウントデータベースを使って、ユーザー名、パスワードで認証の可否、アカウント情報を取得するようなコンソールアプリを作った。C++からパイプ経由で呼び出されるのだが、EF使ってたりデータベースのパスワード保護をやってるせいか、接続の初期化に時間がかかって非常に遅かった。パイプ繋ぎっぱなしというのも考えたけど、使う人が嫌がったので、ラッパーDLLをリンクしてC++アプリの起動時にだけ接続処理がされるようにしようと思った。最終的には以下のような構成になった。assembly)データベースに関するビジネスロジックはAuthLib.dllにすべて実装されているが、これに対応するラッパー関数をAuthLibNativeにたくさん書くのが面倒だったので、すべてEvalという一つの関数を経由するようにした。加えて出力を格納するための、linesという文字列の配列とその要素数の参照を渡せるようにする。成功、失敗をEvalの戻り値にする。Entitiesとか使えるC#を選ぶかというところですな。build)最新のバイナリが入手可能。Windowsの場合はダウンロードしたファイルの拡張子をexeに変える。http://www.rkeene.org/devel/kitcreator/kitbuild/nightly/CookitTclkitとはちょっと方式が違うらしい。バイナリはやや古いものしかない。http://www.endorser.org/en/blog/tcl/cookit/downloadTclkitバイナリはかなり古く、更新停止中。system自分で作りたい方向けhttp://sourceforge.net/projects/kbskitTcl8.6系でTDBCをビルトインしてるのがあったらほしいけど今のところ見当たらない。他にもあった気がするけど思い出したら追記する。Kitgenで作った小さめのバイナリが手元にあるけど、どこかに置いとこうかな。2012でビルドするコメントを残すkitgenが正式にサポートしているのはVC6からVC8(2005)までです。VS2008~VS2013についても、いくつか変更を加えてやればビルドできます。これはTclに限ったことではないのですが、VS2012で普通にビルドした実行ファイルはXPで動作しません。7.1Aにリンクすればビルドできますが、VS2010以前を持ってる人にとっては面倒なだけでメリットがないので古いVSを使った方がいいです。あと、これはいいのかどうか分かりませんが、VC6でビルドするとOS標準添付のC++ランタイム(msvcrt.dll)をリンクするので、別途ランタイムをインストールすることなく動作します。MinGWでビルドした場合もそうなるのでまあ問題ないんじゃないでしょうか。-z”ちなみに、tdbc関連のモジュールが大量にビルド失敗しますが、使わない限りは問題ありませんでした。