ハングアップの日々

2011年 9月分

2011/09/30

memo

2011/09/29

memo

2011/09/28

mp3infp

 mp3infp のカラム拡張が Vista 以降で使えない。調べたところ、IColumnProvider が Vista 以降で使えなくなったのが原因のようだ。

 これを実装すれば、explorer 上でタグを表示するだけでなく、直接編集することもできるようになるのだろうか。

2011/09/27

memo

2011/09/21

SEH

 SEH について再度お勉強。書籍では Advanced Windows 下巻が詳しい。

2011/09/20

au ひかり

 旧 TEPCO の回線が今月末で使えなくなる。au ひかりの VDSL に変更する工事をしてもらった。数分で終わるという話だった気がするが、20分ぐらい掛かった。以前は 20Mbps 程度しか出なかったが、工事完了後 40Mbps 以上出るようになった。NEC のモデムがやたらでかいのが気になる。

memo

2011/09/19

雑誌整理

 古い C Magazine など、いらない雑誌を捨てようかと思い、ぱらぱらと見ていたらちょっと気になる記事を発見。C Magazine 2005/10 pp.149-150 より、

 今まで、FileTimeToLocalFileTime/LocalFileTimeToFileTime にそのような仕様があるとは知らずに使っていた。日本ではサマータイムがないため、たまたまうまくいっていただけのようだ。

結局 C Magazine は、Cygwin がまだ GNU-Win32 と名乗っていた頃のもはや使い物になりそうにない記事が載った号など、ごく一部しか捨てることができなかった。

2011/09/12

memo

2011/09/11

memo

2011/09/04

memo

2011/09/03

Onigmo の x64 対応

 数日前に h-tom 氏より、Onigmo (Oniguruma-mod) の x64 対応のためのパッチをいただいたので、それを元に対応作業を行った。
 元々は Ruby の r23907 などで、Linux の gcc などの LP64 データモデル向けの対応が行われていたが、VC++ などの LLP64 データモデル向けには対応が不十分だった。
一部の関数の戻り値や構造体のメンバを、今回新たに定義した OnigPosition という型に変更したため、x64 環境ではバイナリ互換性が無くなった。
 Onigmo 5.10.6 を Linux でビルドすると、libonig.so.2.0.0 というファイル名のバイナリができるが、今回のバージョン (5.11.0) からバイナリ互換性が無くなったため、libonig.so.3.0.0 という名前に変えようとした。初めはやり方が分からなかったが、configure.in の LTVERSION="2:0:0" という記載を、LTVERSION="3:0:0" に変更後、autoconf を実行することで変更できた。

bregonig.dll の x64 対応

 Onigmo の x64 対応が終わったので、今度は bregonig.dll を x64 に対応させることにした。
 VC++ 2008 以降の x64 コンパイラでは /opt:nowin98 オプションが無くなっており、指定しているとエラーになることを知った。(VC2008 の x86 コンパイラだと警告は出るがエラーにはならない。) VC のバージョンをチェックし、VC2008 以降ならば /opt:nowin98 オプションを付けないように、Makefile を修正した。
 コンパイルしたところ警告が大量に出た。基本的には、int を ptrdiff_t に置き換えることで修正した。
 警告を全て修正できたところで実行してみたところ、test_cp932.py は全件問題なくパスしたのだが、BoSubst() で落ちる問題が発覚。調べたところ、Ver.2.50 beta6 以降の全てのバージョンに問題があることが分かった。解放後のメモリをまだ有効であると誤判定してアクセスしてしまっていた。x86 バイナリではたまたま問題が発生していなかっただけのようだ。


Copyright (C) 2011 K.Takata