一日中デバッグ

ある、VC++のプログラムがある。
ソースを見てみるとWinsockの1.1を指定してるあたり、結構な古さを感じる
(90年代半ばから動いているらしい)
ひょんなことから、ここ3年はe_c_e_tが面倒を見ることになってしまった。
ある環境Aで動作していたのを、別の環境Bで動かす必要が出てきたためいくつかの移植を行ったのが2年前、ついでにちょっとした機能を拡張してみたり。
もともとの環境Aの利用者にBで動いている拡張された機能をみて、「アレが欲しい」と言われ、仕方なく、BをベースにAで動くように逆移植をしたのが去年。
そして、いま、このプログラムにさらなる手を入れてくれ、と要請がでる。
今度はAもBも両方で動くようにしてくれ、とのこと。
去年の変更ではマクロを定義してあり、あるヘッダファイルに
#define A
とか書くとAの環境でビルドできるようにしていた。
その当時はすばらしい仕組みだ、と、浮かれていたが、今日になってダメだったのでは、と思うようになった、
理由は、A用にビルドして試験した後に、B用にビルドして試験をしなくてはならない。
結局同じソースからプログラムは二つできる。2度手間だ。
プログラムをひとつにして、せめてiniファイルなり、レジストリなり、外部ファイルで切り替えれるようなつくりを意識しないとダメだ。
と、気合を入れて書き直したのだが、なかなか面倒な作業だ。
もしかして、書き直さなかったほうが時間は短くて済んだのか。。