09/02/04 11:09:06
Mingw版Ruby 1.9.1-p0 で作った拡張ライブラリが mswin版Ruby 1.9.1で動かせません
原因はMingw版ruby 1.9.1-p0 がmsvcrt-ruby191.dll のDllMain@12をエクスポートしちゃってるので
msvcrt-ruby191.dllをリンクしたプログラムがMingwスタートアップのDllMainではなく
rubyのdllが公開している方をリンクしてしまうからです
rc2からp0になってmsvcrt-ruby191.defの生成法が変わった影響のようです
従来は win32/mkexports.rb によって生成されていたのが
cygwinと共通の生成方式が新設されているようです
C言語環境の知識はあまりありませんが
(特にWindowsのdllシステムやらMingwのdllの扱い方やらはよくわからない)
DllMainなんて公開しちゃだめなんじゃないですか?
ランタイムのエントリルーチンから呼び出される関数ですよね
そもそもが自分で定義するか、そうでなければ
デフォルトのDllMain関数がリンクされるもののはずなので
よそのdllの初期化関数を呼び出すのはまずいでしょう