错误详情
1. 先来看看错误详情
获取 VirtualBox COM 对象失败.
应用程序将被中断.
Failed to instantiate CLSID_VirtualBox w/ IVirtualBox, CLSID_VirtualBox w/ IUnknown works.
PSDispatch looks broken by some installer featuring the broken oleaut32.msm module as a component.
See also https://support.microsoft.com/en-us/kb/316911 .
返回 代码:E_INVALIDARG (0x80070057)
组件:VirtualBoxClientWrap
界面:IVirtualBoxClient {d2937a8e-cb8d-4382-90ba-b7da78a74573}
通过错误描述可以看出oleaut32模块加载的时候发生中断。
2. VirtualBox版本
Version 5.1.18 Edition
解决
解决方法:
1. 修改注册表中如下两项:
2. 分别修改上面两项中的 InprocServer32的默认值为
HKEY_CLASSES_ROOT\CLSID\{00020420-0000-0000-C000-000000000046}
HKEY_CLASSES_ROOT\CLSID\{00020424-0000-0000-C000-000000000046}
C:\Windows\system32\oleaut32.dll
具体操作
1.打开注册表(window + R 打开运行)
2.找到注册表中的需要修改的两项
3.点击InprocServer32在右侧面板中对默认值(和
InprocServer32
)进行内容修改
修改前:(修改时可以通过点击右键进行选项选择也可以直接双击名称进行修改)
修改后:
注意:
老版本的VirtualBox只有默认或者
InprocServer32项,将两者的内容同时修改为
C:\Windows\system32\oleaut32.dll
4.点击开启VirtualBox即可成功