Windows 10 / 11(64bit)で32bitのOCXを登録するには?

Windows 11

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.exeC:¥Windows¥system32¥regsvr32.exe
32bit%systemroot%\SysWoW64\regsvr32.exeC:¥Windows¥SysWOW64¥regsvr32.exe
regsvr32バージョン

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メッセージを表示しない
/nDllRegisterServerを呼び出さない。このパラメーターでは、/i パラメーターも使用する必要がある
/i <cmdline>省略可能コマンドライン文字列を渡し、DllInstalします。/u パラメーターと共に使用すると、DllUninstallが呼び出されます。
<Dllname>登録される.dll/.ocx ファイル名
regsvr32パラメーター

Regsvr32の実行権限

なお、Regsvr32を実行する場合は、「管理者権限」で実行してください。

noru
noru

では、では♪

コメント

タイトルとURLをコピーしました