2007年4月のエントリ

Weather Typingのテスト項目を消化しているのだが,いくつかバグを発見。元々あったバグもあるけど。そのうちの1件はなかなか興味深いのでメモ。

例えば以下のコードがあったとする。"abcあ"はSJISなら半角5文字なので6文字書式に入る。

printf("%-6s", "abcあ")

しかし,これを何も考えずにUnicode化すると

wprintf(L"%-6s", L"abcあ")

L"abcあ"は(多分)8文字分になるので6文字書式からオーバーしてしまう。…という記述はMSDNには見つからなかったんだけど,実験上そんな感じになっているっぽい。結局桁がずれることになる。

# その後実験してみると,上に書いたのとはちょっと違って,%6sはUnicodeで6文字,足りない分は半角スペースで埋めるという微妙な動作だった。つまりいわゆる全角文字が含まれると固定幅にはならないので,位置合わせに使うときは注意が必要。

解決策は…どうやるんだろう。結局文字列引数を1個ずつ分けて描画するみたいな非効率な方法にしてしまった。

すっかり忘れていたのだが,LobbyのPocketPC版をWeather Typing 2.1に入れなければならない。でVisual Studio 2005でビルドしてみたのだが,.NET Compact Framework 2.0に対応させないとうまくビルドできない。てことで.NET Compact Framework 2.0を調べてみたら,前に作ったときに困ってたInvoke,Splitterがサポートされている模様。もう少し作り込んでみようか。

今月のMSDNが到着。ってProfessionalなのにVisual Source Safe 2005が届いたんですけど。しばらく前からWebではダウンロードできるようになっていて,間違いなのかプレゼントなのか不明だったけど,使えということなのか。と思って公式ページを見ると,いつの間にかProにも提供されることになっていた。早速6.0からアップデートせねば。

Weather Typing 2.1とWorld Tester 1.2をゴールデンウィーク辺りにアップロード予定。Weather Typingの方は新機能はなし。最後に公開して以来内部的にいろいろ変えているのだが,新機能がないので公開はしないでいた。で,今回は一応Vista対応という大義名分があるのでこの辺りで公開しようか,てな流れ。World Testerは割といろいろ追加している。画面サイズ変更と効果音の追加が主なところか。


マニュアルもどうせならVista対応ということで画面キャプチャしていたのだが,普通にキャプチャすると背景が透けてしまったりで都合が悪い。まずはキャプチャソフトから作るか,と思ったら「Window Clipping」といういい感じのフリーソフトがあった。透明なウィンドウ枠をPNGの透過色で表現してくれるという高機能さがいい。

情報処理試験エンベデッドを受けてきた。エンベデッドの開発なんてやったことないけど,過去問で踏切の設計とかが出てて意外に問題が面白いので受けてみた感じ。航空機をレーダーで管理する問題はなかなか面白かった。これが受かってればあとはシステム管理でテクニカル制覇…なんだけど,システム管理は論文なのか。ロビー運営じゃあシステム管理の論文にはならないかなあ。

DELL XPS M1710をWindows Vistaで使っているが,スリープや休止を行うと,復帰時にUSBHub関連でブルースクリーンになるという現象がずっと発生していた。でちょっと調べていたのだが,MSのナレッジに載っているっぽい。パッチを当ててみたが,必ず再現するわけではないので直ったのかどうかいまいち分からない。