From: "染谷 康一" Date: 2012-07-12T16:58:09+09:00 Subject: [ruby-list:48834] Re: UNLHA32の「Unlha」が見つからない なかむら(う)さんのご指摘通りに修正し、「Unlha」が見つからない事象は解消され ましたが、「NameError」になってしまいました。 ruby -v chozaimeisai.rb ruby 1.8.7 (2010-12-23 patchlevel 330) [i386-mswin32] C:\lha.rb:86: undefined method `Unlha' for module `UnLha32Lib' (NameError) from chozaimeisai.rb:1:in `require' from chozaimeisai.rb:1 今度は何が原因か分かりません。 どのようにすれば良いのか、ご教示願います。 実行ファイルの内容は以下の通りです。 (ここから)================================================================== = require "lha" Dir.glob("*.lzh"){|fname| UnLha32Lib.decompress(fname, true) } (ここまで)================================================================== = 以上、よろしくお願いします。 ----- Original Message ----- >Date: Wed, 11 Jul 2012 17:19:22 +0900 >From: 染谷 康一 >Subject: [ruby-list:48830] Re: UNLHA32の「Unlha」が見つからない >To: ruby-list@ruby-lang.org (ruby mailing list) > > >早速のお返事、ありがとうございます。 > >>私の予想では、 >> * 環境はWindows >> * 使っているのはrubyの1.8のどこかのバージョン >> * 本当に出たエラーは >> .../dl/import.rb:127:in `symbol': can't find the symbol `Unlha' (Runti m >eError) >>ではないかと思うのですが、違いますか? >なかむら(う)さんの仰るとおり、WindowsXPでRuby1.8.7です。 > >エラーメッセージは、ラッパーの検証としてirbで行いましたときに出力されたものを >コピペしました。 >そのほかのメッセージとしましては、以下の通りです。 > > from C:\ruby-1.8\lib\ruby\1.8/dl/import.rb:126:in `symbol' > from C:\ruby-1.8\lib\ruby\1.8/dl/import.rb:145:in `import' > from C:\ruby-1.8\lib\ruby\1.8/dl/import.rb:61:in `extern' > from C:\lib/lha.rb:22 > from (irb):1:in `require' > from (irb):1 > from C:\ruby-1.8\lib\ruby\1.8/fileutils.rb:868 > >>で、上記がおおよそ正しいという前提でですが、DL::Importableの >>externメソッドはあんまり賢くないので、染谷さんの記述ではうま >>く動作しません。 >のご指摘の通りに修正しましたら、動作しました。 > >お手数おかけしました。 > >ありがとうございました。 > >----- Original Message ----- >>Date: Wed, 11 Jul 2012 16:36:39 +0900 >>From: "U.Nakamura" >>Subject: [ruby-list:48829] Re: UNLHA32の「Unlha」が見つからない >>To: ruby-list@ruby-lang.org (ruby mailing list) >> >> >>こんにちは、なかむら(う)です。 >> >>In message "[ruby-list:48827] UNLHA32の「Unlha」が見つからない" >> on Jul.11,2012 15:49:39, wrote: >>> 失礼します。 >>> 染谷と申します。 >>> >>> DLライブラリでUNLHA32のUNLHAを使おうとしましたが、以下のエラーで使うことが >でき >>> ません。 >>> >>> RuntimeError: can't find the symbol `lha' >> >>使用したrubyのruby -vの出力と正確なバックトレースがないと、普 >>通は調べようもございません。 >>私の予想では、 >> * 環境はWindows >> * 使っているのはrubyの1.8のどこかのバージョン >> * 本当に出たエラーは >> .../dl/import.rb:127:in `symbol': can't find the symbol `Unlha' (Runti m >eError) >>ではないかと思うのですが、違いますか? >> >> >>で、上記がおおよそ正しいという前提でですが、DL::Importableの >>externメソッドはあんまり賢くないので、染谷さんの記述ではうま >>く動作しません。 >> >> extern "int Unlha(HWND, const char *, char *, DWORD)" >> >>くらいで動くのではないかと思いますが、どうでしょうか。 >> >> >>それでは。 >>-- >>U.Nakamura