Last Updated 2002/04/16
Programming Tips Visual C++ DLL  索 引 
ファイルポインタをEXEと共同で使用できるか?
2002/04/16

DLL にて fopen() したファイルポインタは EXE で使用出来ない.

EXE 側は EXE 側でリンクされた fopen() のファイルポインタを期待しているからである.
ファイルポインタは他のコンパイラや同じコンパイラでもオプションの違いやバージョンの違いにより実装が異なる可能性がある為である.

open() が返すファイルハンドルは OS が管理している為自由に使用できるが,ファイルポインタはライブラリが管理するので DLL は DLL,EXE は EXE で実行しなければならない.

(EXE と DLL にて同じライブラリをダイナミックリンクした場合にはうまくいく可能性はある.が,やはり EXE は EXE,DLL は DLL で管理すべきである)


参照
前後のTips
ファイルポインタをEXEと共同で使用できるか?

DSS ProgrammingTipsCGI Ver2.02