IE8のレンダリングモードに引き続き、今度はIE8のActiveXコントロールに関してお勉強。
Microsoftは、Windows VistaとWindows Server 2008で稼働するIE 8では、データ実行防止(DEP:Data Execution Prevention)と非実行ページ保護(NX:No eXxecute)機能をデフォルトでオンにする。
IE 8でセキュリティ機能のデフォルト設定が変更に – ITmedia エンタープライズ
ということで、ActiveXコントロールに関しては以下のようにしないとIE8(と、DEPを有効にしたIE7)では動かないらしい。
- アドオンのコードで旧バージョンのATL(Active Template Library)を利用している場合、ATL バージョン7.1 SP1以上(Visual Studio 2005にはATL 8.0が含まれる)で再構築する
- リンカオプション/NXCOMPATを設定し、アドオンがDEP・NXと互換性があることを指定する
とりあえず、Visual Studio 2005あたりで/NXCOMPTオプションをつけて際ビルドすればOKの模様。(理解が浅いです。有識者からの突っ込みをお待ちしております。)
で、これに関しては、そもそもATLって何よ?というレベルでした。今の理解は以下の程度。
- ATLはActiveTemplateLibraryの略でテンプレートベースのC++クラスのライブラリらしい。
- MFCでActiveXコントロール作成、ATLでActiveXコントロール作成・・・という選択肢があるらしいが、ActiveXコントロール作成に関してはATLで作成するほうがDLLも必要じゃないし、軽量、高速になってよいらしい。
うーん。難しいですね。とりあえずIE8でインストール、動作しないActiveXがあったらUpdateを待てばよいようです・・・・。(弱気