Takeshi Komiya
katsu****@dd*****
2004年 12月 31日 (金) 23:33:11 JST
小宮です。 pack の仕様が変化したのか、[nil].pack('S') が失敗するために exerb の各所でエラーが起きるようです。 ('S' だけでなく、数値変換全般('L' や 'N' など)で発生するようです) % ruby -e 'p [nil].pack("S")' -e:1:in `pack': cannot convert nil into Integer (TypeError) from -e:1 とりあえず、pack('S') や pack('L') している箇所に nil がわたらないように 強引に nil => 0 という変換をした結果、a.rb は動作するようになりました。 (他に exerb サンプルの exception.rb, msgbox.rb も確認しました) adhoc な修正ですが、パッチを添付します。 参考までにどうぞ。 Keisuke Minami wrote: > こんばんは。三並と申します。 > > Rubyを1.8.2アップグレードして、exerbを使ってみたところ > エラーが出てしまったので報告させていただきます。 > とりあえず、原因とかは調べられていないので報告だけです。 > > テストしたのはこんなスクリプトです。 > a.rb > ---- > #! ruby -Ks > p 1 > ---- > > 以下は、エラーの表示 > > D:\>ruby -r exerb/mkexr a.rb > 1 > > D:\>ruby "C:/Program Files/ruby-1.8/bin/exerb" a.exr > C:/Program > Files/ruby-1.8/lib/ruby/site_ruby/1.8/exerb/win32/struct/image_dos_header.rb > :58:in `pack': cannot convert nil into Integer (TypeError) > from C:/Program > Files/ruby-1.8/lib/ruby/site_ruby/1.8/exerb/win32/struct/image_dos_header.rb > :58:in `pack' > from C:/Program > Files/ruby-1.8/lib/ruby/site_ruby/1.8/exerb/win32/struct/base.rb:25:in > `size' > from C:/Program > Files/ruby-1.8/lib/ruby/site_ruby/1.8/exerb/win32/struct/base.rb:30:in > `read' > from C:/Program > Files/ruby-1.8/lib/ruby/site_ruby/1.8/exerb/win32/struct/base.rb:21:in > `read' > from C:/Program > Files/ruby-1.8/lib/ruby/site_ruby/1.8/exerb/win32/pe_file.rb:40:in `read' > from C:/Program > Files/ruby-1.8/lib/ruby/site_ruby/1.8/exerb/win32/pe_file.rb:28:in `read' > from C:/Program > Files/ruby-1.8/lib/ruby/site_ruby/1.8/exerb/win32/pe_file.rb:32:in > `new_from_binary' > from C:/Program > Files/ruby-1.8/lib/ruby/site_ruby/1.8/exerb/resource.rb:47:in > `new_from_pe_binary' > from C:/Program > Files/ruby-1.8/lib/ruby/site_ruby/1.8/exerb/executable.rb:20:in `initialize' > from C:/Program > Files/ruby-1.8/lib/ruby/site_ruby/1.8/exerb/executable.rb:27:in `new' > from C:/Program > Files/ruby-1.8/lib/ruby/site_ruby/1.8/exerb/executable.rb:27:in > `new_from_file' > from C:/Program > Files/ruby-1.8/lib/ruby/site_ruby/1.8/exerb/executable.rb:27:in `open' > from C:/Program > Files/ruby-1.8/lib/ruby/site_ruby/1.8/exerb/executable.rb:27:in > `new_from_file' > from C:/Program Files/ruby-1.8/bin/exerb:51:in `main' > from C:/Program Files/ruby-1.8/bin/exerb:131 > > D:\>ruby -v > ruby 1.8.2 (2004-12-25) [i386-mswin32] > > D:\>ruby "C:/Program Files/ruby-1.8/bin/exerb" --version > Exerb 3.2.0 > > よろしくお願いします。 > -------------- next part -------------- 文字コード指定の無い添付文書を保管しました... 名前: patch Download