[#41876] mswin32版のライセンスについて — TOBY <toby@...>

はじめまして、rubyを愛してやまないTOBYと申します。

13 messages 2006/03/05

[#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)です

[#41933] Cygwin での #!/bin/env ruby -Ks — "Hideo Konami" <konami@...>

小波です。Cygwin で Ruby のスクリプトをいつも書いています。

14 messages 2006/03/22

[ruby-list:41903] Re: "win32/registry" と "dl/win32" の相性について

From: take_tk <ggb03124@...>
Date: 2006-03-10 01:47:51 UTC
List: ruby-list #41903
たけ(tk)です

[ruby-list:41902] Re: "win32/registry"   と "dl/win32"   の相性について にて
Takaaki Tateishi <ttate@ttsky.net> さん曰く:

> > "dl/win32" の Win32API を前提とするメソッドで、
> > no implicit conversion from nil to integer (TypeError)
> > というエラーになる。
> 
> require "win32/registry" でWin32API.soをロードするので、Win32API#callが
> 再定義されてしまいます。その再定義のあとでMessageBox.callが呼ばれるので、
> Win32API.soのWin32API.callが使われることになります。
> 
> require 'dl/win32'
> class Win32API
>   alias dlcall call
> end
> 
> とでもしておいて、Win32API#dlcallを使えば良いかもしれません。
> または、Win32APIというクラスを使わないかです。

これは、dl/win32 の Win32API にたいする互換性の問題で、おそらくは、
Integerを期待しているメソッドに対してnilを送ったときの動作の非互換性の問
題。

(a)dl/win32 で、この非互換性が生じている部分を見つけて Win32API 互換
になるように変更するか、

(b)win32/registory を訂正する、

というのが解決策ではないだろうか? 「dl/win32」は「Win32API」との互換性
のためにある、とするなら(a)が筋ではないか? 「dl/win32」が互換性を確
保すれば、win32/registory の require "Win32API" を "dl/win32" に変更でき
ることになる。

Integer を期待するときに nil が入った時に、0 として扱うことが絶対にまず
い、ということであれば、(b)が筋ということになるだろう。

いずれにしても、ユーザがトラブルに巻き込まれるのはまずい。ライブラリ側で
対処すべきだと思う。

Take_tk = KUMAGAI Hidetake
たけ(tk)=熊谷秀武


In This Thread