From: Masaki Suketa Date: 2002-06-24T21:16:44+09:00 Subject: [ruby-dev:17572] Re: [ruby-list:35439] Re: win32ole で excel が終了しない 助田です。ruby-devに投げます。 In message "[ruby-list:35439] Re: win32ole で excel が終了しない" on 02/06/23, arton writes: > > 1.7系では、WIN32OLE.new が無くなって、WIN32OLE.allocate と WIN32OLE#initialize > > になってます。allocateはメモリー確保で、initialize で初期化です。 > そんなに変わるんですか…… > 実際には、 > a = WIN32OLE.new(progid) > が > a = WIN32OLE.allocate.initialize(progid) > に変わるという認識で合ってますか? ごめんなさい。全然言葉が足りなかったです。 えーと、正確には、win32ole.cで rb_define_singleton_method(cWIN32OLE, "new", ...) が消えて、 rb_define_singleton_method(cWIN32OLE, "allocate", fole_s_allocate, 0); rb_define_method(cWIN32OLE, "initialize", fole_initialize, -1); の2つに代わったということです。 実際に使うときは、今までと同じように a = WIN32OLE.new(progid) で大丈夫です。 ただ、なかださんの説明([ruby-list:35435])にあるように WIN32OLE.allocate.each みたいに書こうと思えば、書けてしまう訳です。 > Nothing = WIN32OLE.allocate > として、以後、この定数をそのてのパラメータに利用できそうです。 これは、VT_NULLか、VT_EMPTYに対応するようなものってことですか? 助田 雅紀