首页 > 代码库 > 获取VirtualBox COM对象失败,Unable to start the virtual device

获取VirtualBox COM对象失败,Unable to start the virtual device

一、问题

1、将Genymotion和VirtualBox安装好之后,并且已经下载完了virtual device; 
2、但是在运行虚拟机的时候却弹出了错误提示:虚拟机电脑控制台——严重错误。 
如图: 
技术分享

错误信息:

获取VirtualBox COM对象失败 
应用程序将被中断 
明细(D) 
Failed to instantiate CLSID_VirtualBox w/ IVirtualBox, but CLSID_VirtualBox w/ IUnknown works. 
PSDispatch looks fine. Weird.

返回代码: E_NOINTERFACE (0x80004002) 
组件: VirtualBoxClientWrap 
界面: IVirtualBoxClient {d2937a8e-cb8d-4382-90ba-b7da78a74573}

二、解决方法

经过多次上网查找,本人的解决方法为修改相关注册表里面的信息,步骤如下: 
1、在电脑右下角“开始”菜单中,点击“运行”。如下图: 
技术分享

2、输入“regedit”,即可打开“注册表编辑器”。如下图: 
技术分享

3、打开“注册表编辑器”后,分别找到一下两个注册表,并按照下面的方法进行修改: 
①注册表一: 
HKEY_CLASSES_ROOT\CLSID{00020420-0000-0000-C000-000000000046} 
InprocServer32 修改为C:\Windows\system32\oleaut32.dll 
②注册表二: 
HKEY_CLASSES_ROOT\CLSID{00020424-0000-0000-C000-000000000046} 
InprocServer32 修改为C:\Windows\system32\oleaut32.dll

3.1、修改注册表示例: 
①、在注册表中找到HKEY_CLASSES_ROOT\CLSID{00020420-0000-0000-C000-000000000046}\InprocServer32。如图: 
技术分享 
②、选择“默认”,点击鼠标右键弹出菜单,然后点击“修改(M)”。如图: 
技术分享 
③、将数值数据一栏中原来的内容修改成“C:\Windows\system32\oleaut32.dll”。如图: 
技术分享 
④、按照以上三步,将第二个注册表“HKEY_CLASSES_ROOT\CLSID{00020424-0000-0000-C000-000000000046}\InprocServer32 ”中的默认数值修改为“C:\Windows\system32\oleaut32.dl”后,就可以重启VirtualBox了,试试可行。

获取VirtualBox COM对象失败,Unable to start the virtual device