[#41872] [ANN] オープンソースカンファレンス2006 Tokyo/Spring — SASADA Koichi <ko1@...>
ささだです。
6 messages
2006/03/03
[#41876] mswin32版のライセンスについて — TOBY <toby@...>
はじめまして、rubyを愛してやまないTOBYと申します。
13 messages
2006/03/05
[#41877] Re: mswin32版のライセンスについて
— "U.Nakamura" <usa@...>
2006/03/06
こんにちは、なかむら(う)です。
[#41878] Re: mswin32版のライセンスについて
— TOBY <toby@...>
2006/03/06
TOBYです。
[#41879] Re: mswin32版のライセンスについて
— "U.Nakamura" <usa@...>
2006/03/06
こんにちは、なかむら(う)です。
[#41880] Re: mswin32版のライセンスについて
— TOBY <toby@...>
2006/03/06
こんばんは、TOBYです。
[#41883] Re: mswin32版のライセンスについて
— "U.Nakamura" <usa@...>
2006/03/06
こんにちは、なかむら(う)です。
[#41885] Re: mswin32版のライセンスについて
— TOBY <toby@...>
2006/03/06
こんばんは。TOBYです。
[#41886] "win32/registry" と "dl/win32" の相性について — take_tk <ggb03124@...>
たけ(tk)です
14 messages
2006/03/07
[#41887] Re: "win32/registry" と "dl/win32" の相性について
— nobu@...
2006/03/07
なかだです。
[#41888] Re: "win32/registry" と "dl/win32" の相性について
— take_tk <ggb03124@...>
2006/03/07
たけ(tk)です
[#41889] Re: "win32/registry" と "dl/win32" の相性について
— "U.Nakamura" <usa@...>
2006/03/07
こんにちは、なかむら(う)です。
[#41894] Re: "win32/registry" と "dl/win32" の相性について
— take_tk <ggb03124@...>
2006/03/08
たけ(tk)です
[#41897] Re: "win32/registry" と "dl/win32" の相性について
— WATANABE Hirofumi <eban@...>
2006/03/08
わたなべです。
[#41909] Debian — Shin-ichiro HARA <sinara@...>
原です。
11 messages
2006/03/14
[#41933] Cygwin での #!/bin/env ruby -Ks — "Hideo Konami" <konami@...>
小波です。Cygwin で Ruby のスクリプトをいつも書いています。
14 messages
2006/03/22
[#41943] EUCのunescape — Hideaki KAWAI <kiri-ring@...>
河合といいます。
11 messages
2006/03/22
[#41944] Re: EUCのunescape
— Yukihiro Matsumoto <matz@...>
2006/03/22
まつもと ゆきひろです
[#41945] Re: EUCのunescape
— "U.Nakamura" <usa@...>
2006/03/23
こんにちは、なかむら(う)です。
[#41956] WIN32OLE#[]とWIN32OLE#[]=の変更 — Masaki Suketa <masaki.suketa@...>
助田です。
6 messages
2006/03/25
[ruby-list:41907] Re: "win32/registry" と "dl/win32" の相性について
From:
Takaaki Tateishi <ttate@...>
Date:
2006-03-12 06:09:37 UTC
List:
ruby-list #41907
take_tk wrote:
>>> "dl/win32" の Win32API を前提とするメソッドで、
>>> no implicit conversion from nil to integer (TypeError)
...
> これは、dl/win32 の Win32API にたいする互換性の問題で、おそらくは、
> Integerを期待しているメソッドに対してnilを送ったときの動作の非互換性の問
> 題。
問題点がよく分からないので少し確認したいのですが、まず、この "no implicit
conversion from nil to integer (TypeError)" のエラーは、Win32API.soにおける
エラーです。試しに、次のプログラムを動作させてみました。
このプログラムでは、先のmessage_boxメソッドにnilを第一引数に与えています。
require "Win32API"
MessageBox = Win32API.new( 'user32' , 'MessageBox' , %w(N P P N) , "N" )
def message_box( handle,text,caption,type=0 )
MessageBox.call( handle , text , caption ,type )
end
message_box( nil, "hello" , "" , 0 )
エラーメッセージは次の通りです。
t2.rb:5:in `call': no implicit conversion from nil to integer (TypeError)
from t2.rb:5:in `message_box'
from t2.rb:7
次に、dl/win32を使った場合には、次のようなエラーがでます。
/usr/local/lib/ruby/1.8/dl/win32.rb:18:in `pack': can't convert nil into Integer (TypeError)
from /usr/local/lib/ruby/1.8/dl/win32.rb:18:in `call'
from t2.rb:1:in `each_with_index'
from /usr/local/lib/ruby/1.8/dl/win32.rb:16:in `call'
from t2.rb:5:in `message_box'
from t2.rb:7
これらのことを考慮した上で、次の(a),(b)について考えます。
> (a)dl/win32 で、この非互換性が生じている部分を見つけて Win32API 互換
> になるように変更するか、
すでにnil->0の自動変換はdl/win32,Win32APIともに行われず、エラーになるということは確認
できたわけですが、全く同じエラーを出るようにすべきだという意見はあるかと思います。
> (b)win32/registory を訂正する、
当初の問題は、値の自動変換による互換性ではなく、[ruby-list:41886]にあるようにdl/win32.rb
とWin32API.soを*併用*したときの問題だと思います。
そうであれば、registoryを修正するのではなく、(1)併用しても大丈夫なようにdl/win32を修正す
る方法と、(2)併用できないようにする方法があります。絶対に併用しなければならない状況という
ものもないような気がするので、比較的簡単に対処ができる(2)の方が良いと思います。
(2)の場合、変更すべきはdl/win32において、require 'dl/win32'を行ったら$LOADED_FEATURES
にWin32API.soを加えたり、あるいは、先にWin32API.soがロードされていたら警告を出すという
方法などで対処できるでしょうし、そうすべきだったとは思います。
--
Takaaki Tateishi <ttate@ttsky.net>