D11_ver0_08

D11_ver0_08 を作りました。

ソース
http://www.wink.ac/~h-muro/d/trunk/d11_ver0_08.zip
SS
http://www.wink.ac/~h-muro/d/ss/d11_ver0_08.png

くそう、書き方が分からん。
img src はできるけど原寸大になっちゃって、前やってたみたいなのができん。


主な変更点

  • ホーミングの計算を 3次元化
  • Visual C++ 6.0 SP6 対応


ホーミングの計算については後でまとめます。


で、Windows にもってきたら動かなくなって、また
「このくそ Cygwin が!! やっぱりだめじゃねええかあああ!!」とか言いながら今度は消しちゃいまして、
仕事パソコンに入っている Visual C++ 6.0 に勢いで移植しちゃいました。
そしたらちゃんとブレイクポイントで止まってくれて凄く感動したんですが、やっぱり死ぬんです。
それであーでもないこーでもないとやってたら、なんかデストラクタで
資源を解放するときに死んでる事が分かりました。


まだ詳しく調べてないし調べる気もないんですけど(駄目すぎ)
CHoge* hoge_p = new CHoge したクラスがそれぞれ初期化処理(コンストラクタではない)で
Member* m_p = new Member
してる状況で、
delete hoge_p すると死んでるみたいです。
複雑な他の要因のせいでここで死んでるんでしょうけど、もういいです。
もともとは動的確保のために new
してたんですけど、
それだったら std::vector を使えばいいじゃんてことに気付いて
std::vector を使ってみたらしっかりと動いているみたいです。
DLL にしたのがまずかったのかなあ。
いろいろ移植とかも含めたら丸2日かかってしまって泣きそうです。
原因がさっぱり分からないし。
デバッガで追っかけられないバグは私にゃ取り除けません…。


あと、Visual C++ に移植したついでに構造をばっさりと変えました。
ライブラリはライブラリらしく切り分けました。
これだけでも移植作業をした価値があるかも。