[ruby-list:48834] Re: UNLHA32の「Unlha」が見つからない

From: 染谷 康一 <kouichi_someya@...>
Date: 2012-07-12 07:58:09 UTC
List: ruby-list #48834
なかむら(う)さんのご指摘通りに修正し、「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: 染谷 康一 <kouichi_someya@mbe.nifty.com>
>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" <usa@garbagecollect.jp>
>>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, <kouichi_someya@mbe.nifty.com> 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 <usa@garbagecollect.jp>


In This Thread