仕事が一段落した。
プログラミング言語はあたしが推薦してやまない、
世界的に有名な無償の開発環境Tcl/Tk。
泣く子も黙るTcl/Tk。
何でもできちゃうTcl/Tk。
C++プログラマが少なくなるなか、放医研ではTcl/Tk
による開発が標準になっているほどだからな。
ただ、オブジェクト指向タイプではないから、開発
規模は中規模まで。
これを使って、最近までに5,000行強を組み上げた。
依頼者側は開発費を回収すべく、これをパッケージ
化して売るんだと言う。
あたしに対してロイヤリティーを払うというから、
そのパッケージ化作業もあたしが手がけるハメにな
ったということ。
ところが、Tcl/Tkというのはインタープリタ言語で、
技術的ノウハウ(プログラムコード)がまる見え。
で、どこにどういうファイル名でインストールする
か智恵を絞った。
インストールしているときにファイル名を画面表示
しないこともひとつだが、困ったのがアイコンを始
めとする画像ファイル名で、これをモロにCD-ROMへ
記録するわけには行かない。
で、CD-ROM上の名前を変え、HDへコピーする時にコ
ッソリ元の名前に戻すことにした。
アイコ→icon.gif
キヌコ→silk_adr.gif
カナエ→marksize.gif(鼎の軽重(大小)を問う)
と言った具合。
この偽名変更はC言語でできるからいいが、アプリ
ケーションを起動するプログラムを別の場所に作成
する必要に迫られ、四年前に相棒が作成した起動プ
ログラムを手入れすることにした。
相棒さんが手がけたプログラムはC++で、実を言うと
あたしは、C言語のベテランであってもC++は全く組
めない。
相棒のテンゾーは四年前の記述を覚えていないそう
で、
「2時間そこらではできない」
とぬかすのだった…。
ははあ…銭の問題だなと直観するところがあり、自
分でC++を改造することにした。やりたいことは簡単
で、
wish C:/Tcl/lib/Tclap/_main.tcl
というコマンドを実行させるだけでおしまい。
"wish"というのはTcl/Tkの"window shell"のことだ。
たったこれだけの機能を"2時間そこらではできない"
とぬかすのは不思議でござろう、皆の衆。
還暦を過ぎたプログラマの記憶力減退を疑っていい
のかね?
信じられん!
で、その作業の中身。
まずアイコンを描き替えて、今回アプリのアイコン
にする。
これが32×32と、16×16の二種類を用意しなければ
ならない。
32×32を作っておけば、16×16の方はVisualC++の方
で勝手に作ってくれると思ったら大間違いで、自分
でプチプチ編集しなくちゃならんのだと。
次の壁が「名前空間」という概念で、どんな小規模
プログラムでもこの概念は必要なんだと言う。
泣けてきたね。
このハードルを飛び越えてヤレヤレと思っても、ダ
イヤログのキャンセルボタンが押されたときはどう
の、タスクバーに引っ込めたときはこうの、ダイヤ
ログをドラッグされたときはどう処理するの…とい
ちいちウルサイ。
wish C:/Tcl/lib/Tclap/_main.tcl
だけ実行してくれればいいのに、なんだってあれこ
れ煩わしいことをやらなくちゃーいけんのかと腹が
グツグツ煮え立ってきた。
案の定一回目のコンパイルが通り、リンクもエラー
なしで通過しても、起動してみれば
"…がreadになれませんでした"
の有名なエラーが…。
???…で、第一日目は放棄。
第二日目の本日は、畑作業(土を掘り返して空気を
入れる)をしてリフレッシュしてから慎重に手をつ
けた。
不要と思われる記述部分を数行削除するたびにコン
パイル&リンクの冒険をし、3時間かけてスリム化し
た。
これを起動してみごとOKの"Congratulations!"だ。
どうやって達成したかって?
不要と思われる関数のbody部分を空にして、return
命令の返り値はすべてTRUEにしたのでござんす。
関数名を残したのは、名前空間を含めてがんじがら
めC++記述のウラをかくためでござる。
これで二度目の胃潰瘍にならずに済んだわけだ。
おめでたいことにてござんす。
0 件のコメント:
コメントを投稿