VirtualBox COM获取对象失败

原文地址:http://blog.csdn.net/zp_00000/article/details/70207445




错误详情


1. 先来看看错误详情

  1. 获取 VirtualBox COM 对象失败.
  2. 应用程序将被中断.
  3. Failed to instantiate CLSID_VirtualBox w/ IVirtualBox, CLSID_VirtualBox w/ IUnknown works.
  4. PSDispatch looks broken by some installer featuring the broken oleaut32.msm module as a component.
  5. See also https://support.microsoft.com/en-us/kb/316911 .
  6. 返回 代码:E_INVALIDARG (0x80070057)
  7. 组件:VirtualBoxClientWrap
  8. 界面:IVirtualBoxClient {d2937a8e-cb8d-4382-90ba-b7da78a74573}
通过错误描述可以看出oleaut32模块加载的时候发生中断。

2. VirtualBox版本

  1. Version 5.1.18 Edition
解决

解决方法:

1. 修改注册表中如下两项:

  1. HKEY_CLASSES_ROOT\CLSID\{00020420-0000-0000-C000-000000000046}
  2. HKEY_CLASSES_ROOT\CLSID\{00020424-0000-0000-C000-000000000046}

2. 分别修改上面两项中的 InprocServer32的默认值为

  1. C:\Windows\system32\oleaut32.dll

具体操作

1.打开注册表(window + R 打开运行)
VirtualBox COM获取对象失败

2.找到注册表中的需要修改的两项

 VirtualBox COM获取对象失败
 
3.点击InprocServer32在右侧面板中对默认值(和InprocServer32)进行内容修改

修改前:(修改时可以通过点击右键进行选项选择也可以直接双击名称进行修改)
VirtualBox COM获取对象失败

 修改后:
VirtualBox COM获取对象失败

注意:老版本的VirtualBox只有默认或者InprocServer32项,将两者的内容同时修改为

  1. C:\Windows\system32\oleaut32.dll
4.点击开启VirtualBox即可成功

VirtualBox COM获取对象失败