From: "U.Nakamura" Date: 2010-06-24T20:26:30+09:00 Subject: [ruby-dev:41713] Re: WIN32OLE_METHOD offset_vtbl こんにちは、なかむら(う)です。 In message "[ruby-dev:41712] Re: WIN32OLE_METHOD offset_vtbl" on Jun.24,2010 20:09:17, wrote: > > t = WIN32OLE_TYPE.new("Microsoft Shell Controls And Automation", "Shell") > > assert_equal(0, WIN32OLE_METHOD.new(t, 'QueryInterface').offset_vtbl) > > assert_equal(8, WIN32OLE_METHOD.new(t, 'AddRef').offset_vtbl) > > assert_equal(16, WIN32OLE_METHOD.new(t, 'Release').offset_vtbl) > > assert_equal(24, WIN32OLE_METHOD.new(t, 'GetTypeInfoCount').offset_vtbl) > > assert_equal(32, WIN32OLE_METHOD.new(t, 'GetTypeInfo').offset_vtbl) > > assert_equal(40, WIN32OLE_METHOD.new(t, 'GetIDsOfNames').offset_vtbl) > > assert_equal(48, WIN32OLE_METHOD.new(t, 'invoke').offset_vtbl) > > 情報ありがとうございます。 > ところで、64bit Windows か 32bit Windows か Ruby から動的に見分ける方法 > って何かあるんでしょうか? > 識者の方 ええと、Windowsを見分けたいのか、Rubyを見分けたいのか、どっち でしょう? うーん、言葉が難しいですね。 (a) 32bitバイナリ版Rubyを使って、実行環境であるWindowsが32bit であるか64bitであるかを知りたい (b) 64bitバイナリ版Rubyを使って、実行環境であるWindowsが32bit であるか64bitであるかを知りたい (c) 単に今実行しているRubyが32bitバイナリであるか64bitバイ ナリであるかを知りたい のどれでしょう? たぶん(c)だと思うので答えておくと、RUBY_PLATFORMで判定してく ださい。64bitバイナリは*-mswin64です。 見たことないですけどもしmingwで可能だったとしたら、*-mingw64 になると思います。 それでは。 -- U.Nakamura