问题:
最近开发的功能中,使用DirectShow技术代替旧VFW,调取高拍仪或摄像头为了兼容大部分品牌设备。
可以同事在给客户机器安装产品后,运行时系统提示“IClassFactory为CLSID为{51B4ABF3-748F-4E3B-A276-C828330E926A}的COM组件创建实例失败,原因是出现以下错误:80040273”
分析:
根据提示的CLSID到我的注册表找到了如下信息:
[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{51B4ABF3-748F-4E3B-A276-C828330E926A}]
@="Video Mixing Renderer 9"
[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{51B4ABF3-748F-4E3B-A276-C828330E926A}\InprocServer32]
@="C:\\Windows\\SysWOW64\\quartz.dll"
"ThreadingModel"="Both"
看来是使用了系统盘符下的quartz.dll文件。
解决方法:
1.让同事在系统盘符下找一下这个quartz.dll文件,他说确实存在,可就是报错。
2.我又给他发了一个dll文件进行替换,还是有问题。
3.最后发现是他系统注册表没有[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{51B4ABF3-748F-4E3B-A276-C828330E926A}\InprocServer32]
4.重新注册控件,怎么也写入不了(即使使用了管理员权限)
5.没有办法只能重装系统了。
[问题持续]
2018年8月15日,该问题再次被另一个客户反馈。根据经验让其重新装一下系统,换一个版本,结果问题还依然存在。最后客户装系统都烦躁了。直接将问题反馈到了工程部,要求派人来给上门维修。
工程部的兄弟经过多方尝试最后得出结论:
客户主板上带的显卡有问题,安装多次显卡驱动都装不上。后来,安装了一个独立显卡,问题得以解决。