発生方法
Windows 7 (x64) Home Premiumでcscript.exeで以下のVBScriptを実行。きっとXPやVistaのx64版でも同じようなことが起こる……はず。
Dim daoDbe
Set daoDbe = CreateObject("DAO.DBEngine.36")
ActiveXコンポーネントはオブジェクトを作成できません。:”DAO.DBEngine.36″といったメッセージが表示される。
原因
64bitのcscript.exeで実行しているので、32bitのdll(上のDAOの場合だとdao360.dll)は呼べない。
対応
32bitのcscript.exe(%SystemRoot%\SysWow64\cscript.exe)で実行してやる。
疑問
アウトプロセスなCOMサーバ(VB6で言うところのActiveX EXE)だとどうなるんだろう。WOW64とやらがうまいことやってくれたりしないだろうか。後で試してみよう。