わたなべです。 "U.Nakamura" writes: :えーと、gtkのDLL群がPATHの通ってないディレクトリにあるのなら、 :動かなくても別段おかしいことではないような気もするんですけど、 :私の感覚は変ですか? いや、そもそもruby.exeが置いてあるとこにPATHを通さないという のがなんか変です。ですが、ひょっとして通さなくても自分の知ら ないなにか便利な使い方でもあるのかなと思ってしまったもんで。 :| これ :| http://www.microsoft.com/japan/developer/library/jpwinpf/_win32_loadlibraryex.htm :| を見るとどっちでもよさそうな気がするんだけどなあ。 : :LOAD_WITH_ALTERED_SEARCH_PATH を指定した場合、上記URLに書か :れている通り、普段はアプリケーション(Ruby)が存在するディレク :トリも検索しているのを、該当DLLが存在するディレクトリを代わ :りに検索対象とする、ということでしょう。 なるほど。よく読んでませんでした。 標準は アプリケーションのロード元ディレクトリ で代替が lpLibFileName パスで指定されたディレクトリ。つまり、指定し た実行可能モジュールが格納されているディレクトリ。 なので全然違う場所ですよね。なぜか同じところと思いこんでました。 前者がruby.exeがあるところで、後者はgtk.soがあるところ。 :Windows2000で動いちゃうのは、DLL検索順ルールが微妙に変更され :てるからじゃないですかねぇ。 ややこしいなあ。 "U.Nakamura" writes: :結論を書き忘れましたが、私の感覚はともかく、変更すること自体 :は賛成です。 了解です。単にLoadLibraryを使うことにします。 もともとなんでLOAD_WITH_ALTERED_SEARCH_PATHかというとPerlが そうなってたからなんですが。 :archdirやsitearchdirにRubyの拡張ライブラリじゃないDLLを入れ :る人なんていないですよね ^^; 1.6と1.7とかあちこち入れないといけないってのも変ですし。 -- わたなべひろふみ