いうか、メモリーアロケーションにしろ、ファイルハンドルにしろ、なぜ素のWin32のオブジェクトを使わないのかと(それは、POSIXそっくりさんのMSVCRTと、Win32の設計思想の相違をMSVCRTが吸収しているからだと言えばそれまでなのだが)追記:と思っていたのだが、今見ると、ALLOCはxmallocで、xmallocはgc.cのruby_xmallocだから、拡張ライブラリとRuby本体で異なるmallocを使うということは無いようだな。いうことで、上のは、ファイル関係以外は嘘っぱちということだ。23:33)ああ、確かに。いうのを見たけど、変数の参照はその通りですね。00:23)errnoについてはもう少々複雑というかもう一段階挟まってて、MSVCRT内で使うTLSに取られてるわけですが、そのTLSのためのインデックスがバージョンごとに別なのでerrnoも別になってるという状態です。<br>というか、VCはコンパイラ自身がTLSをサポートしてるはずなので、素直にそっちを使っててくれれば問題なかったんじゃないかと。01:22)そんなことになっているとは。<br>(ちょっと見てみる)__flsindexと__tlsindexで別管理だからってことかな。これをすべてのDLLで共有するとしたらTlsAllocの戻り値をシェアできる領域にコピーしておく必要があるけど、MSVCRTの段階でtlsindexをシェアしないようにしているから既に遅かったということでは(VC10にはdefファイルが入っていないから現在はどうかわからないけど)。07:59)そういう意味。どのバージョンからサポートしたのか分からないけど。09:26)VC6ではサポート済みでしたね(仕事で使ったので覚えてる)。これもDLL単位になりそうな。16:13)あぁなるほど、dllexportにはできないというわけか。<br>確かに、特定のsegmentに対するoffsetだと、DLLが複数になったら解決できないな。18:58)少なくともVC6にはありましたねえ。<br>とりあえずこのURLは見ておくといいかな。思ったが、暗黙のうちにリンカに解決(アプリケーションロード時に動的にロード)されればOKってことか。