Repo

kjana00@gmail.com

older <-

2008-10-01

今朝はくもり。朝ごはんはパンとソーセージとゆでたまごとサラダ。今日から衣替えだとかクールビズ終了だとか言ってもまあ別に誰も気にしないから来週からでいいやと適当に判断したり。

昨日のバグは結局のところローカル変数にバッファ取ってそこにコピーしてはいいものの送ってるのは元の配列の内容でコピーは無視っていうことになってたという落ち。それに気付くまでどれだけかかってるのかと。

DDX 設定したラジオボタン群に設定するメッセージハンドラなんて全部同じになるに決まってるけどクラスウィザードからどうにかする手段は無い。ちょっと検索したら愚直に個別に設定してるのがまず目に入って、それでもういいやとばかりにヘッダファイル見たらちゃんと ON_COMMAND_RANGE とかあるやんな、ということで使う。

ついでにダイアログベースのアプリケーションで Return だの Escape だの無視させるにはということでソース見て、それで OnOK() と OnCancel() を何もしない関数でオーバーライドしたら成功、と思いきや今度は普通にウィンドウを閉じることも出来なくなりましたとか。結局 OnSysCommand() で SC_CLOSE を見たら EndDialog(IDOK) するという対処で何とかする。多分 OnSysCommand() 呼ばれるよねとブレークポイントを設定して、それで引数の値をヘッダファイルから探し出すっていう……何とも迂遠な。見つかって良かった。

それとパラメータ一揃いでセットを作って、それを書き換えてセーブ出来るようにしてという辺りを真面目にいじってみるとか。ロードして書き換えて無条件にセーブだと誰かに渡した時にデフォルト値を見失ってくれるだろうなということでデフォルト値を設定するファイルを別に用意することにしたり、そのために無かったら作るっていうのを付け足したり。何となくレースを気にして O_EXCL 付きで _open() して fdopen() してから続きをやるようにしたけどそこまでする必要があったんだかどうなんだか。

CDialog::DoModal() が終わった後ってつまりウィンドウが閉じた後で、だからそこでダイアログ出そうとしても失敗してるんだろうなという推測の下パラメータをセーブしようとして何か失敗したら警告を出す関数を EndDialog() 呼ぶ前に移したら rename() が変な失敗をするようになった……のか元々失敗してたのか、とにかく警告のダイアログがちゃんと出るようになった。なんでバックアップを先に remove() するように直してみたり。rename() 先のファイルがあるとだめなのかな。SUSv3 だとそんなことは無さそうに見えるんだけど。

そんな感じでちまちまいじりつつ終わる。帰って晩ごはんに手羽元の煮物と枝豆。煮汁を飲んじゃえるように薄味に作ったけど何となくもったいなくなったんで明日の晩ごはんがそばか五目寿司か何かということに決定したり。

特に何がどうしたということがあるわけでもないのにいつの間にか時間が過ぎてるのは何故だろう? 覚悟を決めて鉱山に戻ったら火蟻は一匹だけだったから何とか突破出来て、それなりに進んだからちょっと大事にしようかと思った矢先にイェティに殺されたりはしたんだけど。

older <-

goto

hint can be:

Tags

old

2007-05 -- 2006-12

ゲーム関係の古い記録

before 2005-12