読者です 読者をやめる 読者になる 読者になる

DLL 検索順序 (4)

.NET

ここからは余談です.上で述べたように,DLL ロード時にファイル名だけ用い絶対パスを指定しない場合にはかなり多くの要因を考慮せねばなりません.このような曖昧な参照を行うアプリケーションですが Windows では案外に一般的です.実際そのおかげで DLL Redirection の有効性があるわけですが,ここにもうひとつの落とし穴があります.
それは,DLL のファイル名の競合で,特にシステム DLL と競合するような名前を DLL に付けたために思わぬ問題に出くわした話が The Old New Thing で紹介されていました.
http://weblogs.asp.net/oldnewthing/archive/2004/07/02/171769.aspx
私の知り合いも似たような苦労をしたことがあるそうで,.NET の DLL プロジェクトでなんと System というプロジェクト名にしてしまったんだそうです.何が起きたかはもうお分かりですね……