From: Masaki Suketa Date: 2007-08-22T19:00:32+09:00 Subject: [ruby-dev:31595] Re: test/win32ole 助田です。 In message "[ruby-dev:31576] test/win32ole" on 07/08/22, SASADA Koichi writes: >  mswin32 での test/win32ole が実行中に異常終了するのですが,どなか > た心当たりはありますでしょうか. (snip) > > test_progid(TestWIN32OLE_TYPE): > >  此処で止まります.デバッガ(VC)は win32ole.c の 2019 行目の > atof() で止まってる,みたいなことを言ってるんですが. > >  自分の環境が Vista だからかもしれません.VC 8 です(ruby 1.9.0 > (2007-08-21 patchlevel 0) [i386-mswin32_80]).他に必要な情報があれ > ばご指摘ください. 手元にVistaの環境が無いので、さっぱりわからないのですが...。 Windows XP で VC71だと再現しませんでした。(ruby 1.9.0 (2007-08-22 patchlevel 0) [i386-mswin32_71]) atofのあたりって、レジストリの情報を読んでいるんですけど、 レジストリの情報(構成)がVistaで変わってしまったのでしょうか? レジストリの情報として HKEY_CLASSES_ROOT\TypeLib\{CLSID}\2.0 というような情報が格納されていることを想定しています。 Vistaではどうなっているかわかりますか? (実際のCLSIDは、{0000001-0000-0000-0000-000000000001}みたいになってます。) atofのあたりは、HKEY_CLASSES_ROOT内のTypeLib内のCLSID内の Version(上の例でいうと2.0)の中の一番大きいのを探す処理をしています。 あと、win32ole.cのreg_enum_key関数で char buf[BUFSIZ]; と宣言してるんですけど、BUFSIZがVista、VC8の環境だといくつかわかりますか? 整理すると、とりあえず、知りたい情報として次の2つをお願いできますか? (1) Vistaのレジストリ情報が HKEY_CLASSES_ROOT\TypeLib\{CLSID}\2.0 のような構成になっているのかどうか? (2) BUFSIZの値 # Vistaはまだ触ったことがない 助田雅紀