IE3〜IE7を1つのシステムで使う方法


IE3〜IE6までを一括でインストールして、なおかつ同時に使えるようにするMultiple IEなるものがあるらしい。
少し前にもどこかで紹介されていたので気になっていたのだが、IEといえばOSと密結合していてすんなり入れ替えたりできない、どころか下手するとOSを巻き添えにしてくれる厄介なやつというイメージがあるので、すんなりと試してみる気になれない……。


しかしこれが安全かつ使い物になるとすれば、メインにIE7を入れることでIE3からIE7までを1つのOS上で一気にカバーできるので、Web屋としてはこの上なく助かりそう。ただまぁ、ところどころ不具合もあるようなので完全に同じというわけにはいかないようだ。
まずは仮想マシン上のXPで試してみようかな。


↓以下、技術的なこと


とりあえず、使ってみるかどうかはさておくとしても実現技術が気になって仕方がない。
上記Multiple IEのサイトにはこのように書かれている。

Basically, Internet Explorer is run by exploiting a known workaround to DLL hell - which was introduced in Windows 2000 and later versions - called DLL redirection.

DLL Hellというのは、いわゆるDLLのバージョンの新旧によって不具合が起こる問題のことで、ありがちなのがMFC42.DLLとかMSVCRT.DLLとか。
現在システムにインストールされているバージョンよりも古いものを上書きインストールしてくれちゃうソフトなんかによってよく引き起こされる*1


DLL Redirectionというのは、このDLL Hellを回避するための策のひとつ*2で、一言で言うとEXEファイルと同じ場所に置いたDLLを強制的に読み込ませる手法*3


というわけで、基本的にはこのDLL Redirectionを利用して実現しているってことでいいのかな。
もちろんこれだけじゃレジストリとかCookieとかキャッシュとか色々ダメそうなので他にも細工はしてるんだろうけど。


ううむ、Windowsプログラミングの熱がよみがえってきた。
Webは仕事だけでおなかいっぱいなので、そろそろこっちもリハビリ始めようかな。

*1:古いもので上書きした場合だけではなく、新しいものに置き換えた場合でもDLL Hellに陥ることがある。

*2:他にはSide by Sideといわれるバージョニングシステムがある。

*3:たとえLoadLibraryでフルパスを指定していても強制できる。