Visual Studio 2010 Part14
■ このスレッドは過去ログ倉庫に格納されています
0067デフォルトの名無しさん
2011/04/29(金) 22:56:18.10実装が違えばABIの不一致が生じるので勿論まずい訳だけれど
上のCRTオブジェクト受け渡しに関する問題は、実装が同じかどうかは関係ない
たとえばexeとDLL側が両方とも/MTでCRTをスタティックリンクしてるなら
exe側とDLLそれぞれにCRTのプライベート空間の
コピーがあるわけだから、exe側でopen()したfdなりFILE*なりをDLL側に
渡したところで、肝心のCRT側が持ってる__iobuf[]のようなCRTの
プライベートデータを共有してないんだから、どうにもならない
要するにexeとDLL側でCRTの空間を完全に共有していなければCRTオブジェクトを
共有することは不可能で、
そうするには全く同じバージョンのCRT DLLに両者が/MDリンクするという
方法しかないわけ
■ このスレッドは過去ログ倉庫に格納されています