From: eiichi_maekawa@... Date: 2011-01-28T07:55:47+09:00 Subject: [ruby-list:47788] Re: Ruby1.9.2 と RDEについて 信岡さん cygwinの環境を構築し、自分でビルドするのは、かなりハードルが高いし、時間が かかると思います。 (正直、今までは、バイナリ版を使用していました。) 信岡さんのアドバイスを参考にして、色々、試して見ます。 netbeansや、eclipseなどを使うことも考えて見ます。 ありがとうございました。 了 "Y. NOBUOKA" wrote on 2011/01/28 05:59:19: > 前川さん > > 信岡です。 > 私も前川さんと同じ Windows XP (32-bit) 環境で RDE 環境を構築してみました が、 > 同じく cygruby1919.dll 見つからないというエラーが発生しました。 どうやら RDE が > 使用する rde.so は cygruby1919.dll に依存しているようです。 > > rde.so は cygwin 環境の ruby 用みたいですので、1 つの解決策は現在インス トール済み > の Ruby (MinGW 版) の代わりに、自分で cygwin 上で Ruby のビルドを行って > (または Cygwin 版のバイナリをインターネット上から取得して) それを使 > う、ということになります。 > 自分でビルドをする場合は、cygwin 本体のインストールが必要になります。 > > また、次のページで別の解決策を見つけました。 > http://hpcgi2.nifty.com/sakazuki/forum/wwwforum.cgi?id=1&az=thread&number=119 > rde.so を使う代わりに、下記のコードを rde.rb として保存して使う、とい > うものです。 > とりあえず私の環境で rde.so の代わりに rde.rb を使ってみたところ、とり > あえずエラーは > 発生しなくなりました。 が、RDE でのデバッグはちゃんと実行できていない > ような気がします。。 > (デバッガの一時停止などがうまく機能しない? 正しい動きがわからないので > ちょっとよくわかりませんが...) > > ---- rde.rb ここから ---- > require 'Win32API' > > module Rde > FILE_MAP_WRITE = 0x2 > FILE_MAP_READ = 0x4 > FILE_MAP_ALL_ACCESS = 0x6 #??? > @find_window = Win32API.new('user32.dll', 'FindWindow', %w(p p), 'l') > @open_file_mapping = Win32API.new('kernel32.dll', 'OpenFileMapping', > %w(l i p), 'l') > @map_view_of_file = Win32API.new('kernel32.dll', 'MapViewOfFile', %w(p > i i i i), 'p') > @unmap_view_of_file = Win32API.new('kernel32.dll', 'UnmapViewOfFile', > %w(p), 'i') > @close_handle = Win32API.new('kernel32.dll', 'CloseHandle', %w(l), 'l') > def stop? > return (@find_window.call(0, "rdestopper") != 0) > end > def path > hMapfile = @open_file_mapping.call(FILE_MAP_ALL_ACCESS, 0, "Rde") > if (!hMapfile) > puts("fail to file mapping") > return -1 > end > lpRdePath = @map_view_of_file.call(hMapfile, FILE_MAP_ALL_ACCESS, 0, 0, 0) > if (lpRdePath.nil?) > puts("fail to MapViewOfFilw") > return -1; > end > if (!lpRdePath) > @unmap_view_of_file.call(lpRdePath) > end > @close_handle.call(hMapfile) > return lpRdePath > end > module_function :stop?, :path > end > > > if $0 == __FILE__ > p Rde.path > p Rde.stop? > end > ---- rde.rb ここまで ---- > > Windows 環境における Ruby に関しては全然詳しくないので > もっと良い方法など知っている方が居ましたら補足をお願いします。 > > -- > 信岡 ゆう (NOBUOKA Yu) > http://www.vividcode.info/ >