Diary of Sacred Fox - August 04, 2004

The Quintetには通算 179067 人(今日:0, 昨日:1)のお客様が来場しています

2004/08/04

ばぐばぐなもの

Illust Logic Paint C# Test Edition
晒し上げた後に実際に使ってみて多数のバグを発見, こういうのって実際に少し使い込んでみないとわからないのよね…
ということで色々とりあえずその場で作ったKnown Bugs Listの中身は全部解決したはず直してみました
ついでに正解判定機能を実装, 旧版は列(行)ごとに正解かどうかを判定するだけだったが, 今回は両端から確定セルを洗い出す処理を追加してみた
この変更で端からロジックを解いている分には数字部分には殆ど触れないで操作ができるようになっている(はず), これを利用できるようにユーザーインターフェースを作る上では絶対に乱用すべきでないもの, でも製作者にとっては一番楽な落としどころキーボードショートカットに[F5]を追加, 数字のチェックを全てクリアしてから正解判定アルゴリズムで全部チェックしなおすというお任せ機能, どこまで実際に使えるのかは未知数ですが…
因みにこの辺の実装だけで250行も食っていたり, 類似部分をもうちょっとスマートに書きたかったんだが, 2次元配列を逆順で使っているところは差し替えが利かないので結局置換してコピペな部分が入ったり, そこだけデリゲートにしたら遅くなるだろうし, その前に値を返すようなデリゲートの一応構文上は作れそうだけど, 複数の関数が入ったデリゲートの返り値はどうなるの?例がないし…
Mode引数を取る普通の関数にしたってなぁ… C#には実際はちゃんとやってくれるのかもしれないけどinlineなんてないからどれぐらい遅くなるか未知数だし…

旧版になかったキーボードアクションは実はこれだけじゃなくて, 可変長の数値入力画面で, 全消去を行いたくなった時にはASCII文字の'c'もしくは'C', キーボードからとわざわざ書いたのはクリップボードから貼り付けても無視するからキーボードから[C]を入力すればよかったり…って, これは入力ウィンドウがテキストボックス1つだけだった旧版では普通に出来たことなので出来てもいいかなと思っただけですが…
因みに入力中はテキストボックスが増えることはあっても減ることはなかったりします, 要らないところは0で放置すれば確定時に消えるので気にしない方向で…
あと, クリップボードから適当に貼り付けてもちゃんと処理してくれたりします, 使う人がいるかどうかわからないですけど…

ついでにExplorerからのファイルのDropに対応してみたり
この辺は大して手間の要らない改造だからだったりしますが…

Windows XPのVisual Style対応をちょっとだけ検討してみたけどすぐに止めたり
これをやるには"manifest"というファイルを正確にはComCtl32のVersion 6を使うように設定する適切に設定してあげる必要があるのだが, どの方法も気に入らない

こっちは何か解決策が見つかったら直して, 見つからなければ放置という方向で…

因みに今回の実行可能ファイルの方はRelease Versionでコンパイルしてみました
でも, .NET用の構造解析用逆アセンブラIl Dasmではしっかりとシンボル名が見えていたり, サイズも変わらないし, 何が違うんだろう…
とりあえずバイナリエディタでDiffをとったら違ったので何かは違うと思いますが…
まさかDebug Database, 何のことやらPDBを作らないだけじゃないよな? と思って一応設定を覗いてみたところ, 一応デバッグ情報の作成をするかとコードの最適化をするか, 使ってないけどコンパイル定数DEBUGを定義するかどうかしか変わらないようだ
で, デバッグ情報は一般保護違反, いまではこの言い方はもうしないのかな? アプリケーションが問答無用で落ちるあれGPFで落ちた時にデバッガをアタッチする時に使われるらしい, 再現パターンを見つけてIDEで落とした方が楽そうだな…
因みにデフォルトではインクリメンタルビルド(変更部分のみを最コンパイルする方式)はオフの模様, ついでにmakeによるモジュール別のコンパイルとは違ってコードサイズに影響が出るかもしれないらしい, 前回との関数レベルでのDiffを取ってるのかな?
因みにファイル数が少ないプロジェクトでは殆ど効果は出ないとのこと, ということで当然聖狐はオフのまま放置することにしましたとさ

現時点で残っている未実装機能


Comments (0):