2012年7月12日

[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: 染谷 康一 <kouichi_someya@xxxxx>
>Subject: [ruby-list:48830] Re: UNLHA32の「Unlha」が見つからない
>To: ruby-list@xxxxx (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@xxxxx>
>>Subject: [ruby-list:48829] Re: UNLHA32の「Unlha」が見つからない
>>To: ruby-list@xxxxx (ruby mailing list)
>>
>>
>>こんにちは、なかむら(う)です。
>>
>>In message "[ruby-list:48827] UNLHA32の「Unlha」が見つからない"
>> on Jul.11,2012 15:49:39, <kouichi_someya@xxxxx> 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@xxxxx>

投稿者 xml-rpc : 2012年7月12日 16:58
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/109955
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。