目覚まし時計を10時にセットしたのに何故か11時半に鳴った。
ぬぅ。完全に壊れているなこれ。http://www.hddlife.com/
その後コミティア名古屋立ち寄ってみる。
たまたま最初に手にとった本がすごく好きな雰囲気の本だった。よかった。
そういえば朝と昼の食事を摂るのを忘れた。
名古屋市科学館のプラネタリウムの今月の番組は「宇宙は137億歳?」でした。
名前からしてつまらなさそうな感じですが、予想に反してスゴク良かったよ。
情報も最新のもので見る価値ありです。感動致しました。
でも3月のこりわずかですね。。。
明日から一週間ほどはとても仕事が忙しいので、Webとmixiの更新頻度が上がる可能性が。
あまりに運がないのでHDDLifeというソフトを試してみた。
サーバマシンで試してみる。
28度ってすごく低くないですか。
なんか嘘くさいなぁ。
別のドライブ。
49度。
手で触ってみて15秒さわっていられれば50度くらいだったはずなので、感触としてもそんなもんかな。
←左のところに表示してみました。
特に意味はないのですが、月みましょうよ、月。
CGIです。C++,libPNG,WindowsSDK(文字描写用)を使用。
(月の軌道計算して、仰角と方位角と見た目の大きさを求めてPNG画像を生成してます)
最近家でVisualStudioとか立ち上げる機会減ったなぁ。
積年のバグの原因を発見したので忘れないうちにメモ。
ああ、ちなみに僕はC/C++言語しかわからんのでWindowsプラットフォームSDK+Cの場合の話ですが、恐らくどの言語でも共通で発生すると思います。
VisualStudio2005ではVisualStudio6.0や.NET、.NET2003では問題がなかったリソース中の文字列の終端文字の扱いが変わってます。
・・・ちょっとうまく説明できてませんね、すいません。
まぁ、試してみるとこんな感じ。
まず一つ前のバージョンであるVisualStudio.NET2003でString Tableを作り、ファイルの保存ダイアログなどでよく使う途中に終端文字を含んだ文字列を作ります。
なんとなく普通に\0を途中に入力。
そうするとこうなります。
\0が\000にエスケープされるらしい。
らしいってのはざっと調べたのですがこれが仕様なのかそもそも\0なんて入力しちゃイカンのかわかんなかったから。(すいません今度調べておきます)
でもとりあえず正しくリソースはコンパイルされるし、思い通りの結果が得られます。
リソースファイルをみてもご覧のとおり。
で、今まではそのようにして使っていたのですが、このプロジェクトをVisualStudio2005で開くと問題発生。
どういうわけか、終端文字の処理がおかしいらしく\0以降にでたらめなデータが入ります。
ホントにでたらめなんですが、どうやら内部で文字列のコピーする時に\0までしかコピーしてない感じですね。長さだけは残るようで不定値と思われる化けた文字が表示されます。
こんな感じ。
サービスパックが出ているので適用したら直るかと思いきや直ってませんでした。・・・ただし\0以降が表示されるようなバグはなくなった。
・・・んだけど結局文字列の後半が消えてしまうので思い通りの結果が得られません。
んー。
これはVisualStudio2005のバグなのか、そもそも終端文字を書いてはいけない仕様なのかわかりませんが、2003→2005の以降では問題になるので注意が必要です。
§ K@i [愛知に来てイベント行ってないなぁ・・・ HDDLifeはうちでも使ってます、どの位信頼性あるかは不明ですがw 月の位..]
§ Suika [K@iさん> 全然信頼できませんね。。 SMARTなんて機能したこと1度しかないし。 月の位置の計算方法はいろいろ公..]