Window 10 / 11(64bit版)には、WOW64(Windows 32-bit On Windows 64-bit)という64bit版のWindows上で32bitのアプリケーションを実行するエミュレーションレイヤーサブシステムがあります。基本的には、この仕組みにより32bitアプリケーションもインストールできるのですが、32bit版のOCXを利用している場合、インストールに注意が必要です。
2種類のRegsvr32
OCXを利用するには、regsvr32コマンドを使用してレジストリにそのクラスを登録する必要がありますが、regsvr32コマンド自体に32/64bitの2種類が存在します。
bit | ロケーション | 実際のディレクトリ(例) |
---|---|---|
64bit | %systemroot%\System32\regsvr32.exe | C:¥Windows¥system32¥regsvr32.exe |
32bit | %systemroot%\SysWoW64\regsvr32.exe | C:¥Windows¥SysWOW64¥regsvr32.exe |
32bitのOCX / DLLを登録するには、SysWoW64にあるregsvr32.exeを使用する必要があります。
C:>regsvr32 <登録するOCX or DLLのフルパス>
C:¥WINDOWS¥system32>regsvr32 <登録するOCX or DLLのフルパス>
“SysWOW64″以外のディレクトリ、または、”system32″のディレクトリで”regsvr32.exe”を実行した場合、64bitの”regsvr32.exe”が実行されますので、32bitのOCX / DLL の登録は失敗します。
C:¥WINDOWS¥SysWOW64>regsvr32 <登録するOCX or DLLのフルパス>
32bitのOCX / DLL の登録は、”SysWOW64″ディレクトリで”regsvr32.exe”を実行すれば、32bitの”regsvr32.exe”が実行されますので、32bitのOCX / DLL の登録が成功します。
なお、同ディレクトリに”登録するOCX or DLL”を配置することをおすすめします。
その方が、32bitのOCX / DLLであることが明確で、またフルパス指定でなく、ファイル名指定だけで済みますよね:)
Regsvr32のコマンド構文
regsvr32コマンドの構文は、以下の通り
regsvr32 [/u] [/s] [/n] [/i[:cmdline]] <Dllname>
パラメータ | 説明 |
---|---|
/u | サーバーの登録を解除 |
/s | メッセージを表示しない |
/n | DllRegisterServerを呼び出さない。このパラメーターでは、/i パラメーターも使用する必要がある |
/i <cmdline> | 省略可能コマンドライン文字列を渡し、DllInstalします。/u パラメーターと共に使用すると、DllUninstallが呼び出されます。 |
<Dllname> | 登録される.dll/.ocx ファイル名 |
Regsvr32の実行権限
なお、Regsvr32を実行する場合は、「管理者権限」で実行してください。
では、では♪
コメント