リリース

昨日の変更を踏まえて、条件検索、クロス検索のアイコンを修正し、マルチ検索はとりあえず不可にしてリリースしようと思い、デスクトップ機のほうでコンパイルすると、条件検索、クロス検索でヒットしない!なぜ〜???とはまってしまった。こんなわけのわからないはまりは久しぶり。
色々試してみると、wxStringTokenizerで分割した文字列をwxString::mb_str()で変換したものをconst char*の配列にそのまま設定していたのがまずかった様子。
UNICODEバージョンだとmb_str()がかえすのはwxCharBufferであり、const char*の配列に設定されるのは、wxCharBufferからキャストされたポインタなので、wxCharBufferのオブジェクト自体をちゃんと保存しておかないと、const char*の配列を検索関数に渡す前に、wxCharBufferの領域が勝手に開放されてしまうんだろう。多分。
wxMSWのバージョンが2.6.2から2.6.3にあがって、メモリ使用が効率化されたのかな〜。
MinGWや他のパッケージのバージョンも違うし、挙動が変わる原因はよく分かりません・・・。(2006/7/18妙に気になって変更)
昨日書いているときもちょっと怪しい処理かと思ったけど、やっぱりか・・・。凡ミスだ。
仕事から離れて勘が鈍っているかな?
まあでも解決してよかった。


ダウンロード