用CoCreateInstance注册 CLSID_VideoMixingRenderer9出错,出错代码是0x80040154.试了好多办法都不能解决!

zshuc 2006-07-11 07:27:22
同样的代码在很多机器上运行成功,但是在一台联想电脑上怎么都是不成功!

1.更新了显卡驱动还是不行!

2. 在CoCreateInstance之前也用了CoInitialize(NULL);也不成功!

3. 我把其它电脑上的quartz.dll拷贝过去注册也不行,郁闷!

怀疑是不是联想电脑在安装操作系统的时候做了什么修补,导致不能使用VMR9,我利用工具查看,是能够看到DirectShow Filter里面已经安装的Video Mixing Renderer 9.对了,在这之前,我也已经安装好了DirecX9.0了.

若是操作系统关闭了VMR9,在程序里面有没有办法强制打开VMR9?



...全文
766 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
happydeer 2006-07-13
  • 打赏
  • 举报
回复
不用安装directx sdk。你只要从其他机器拷一个graphedt.exe过去就行了。

安装Direct SDK会同时安装directx runtime的库。
zshuc 2006-07-13
  • 打赏
  • 举报
回复
happydeer(新奇军)
bitgold(碎金)

各位老大出现了,这下好了.

我有两台一模一样配置的联想电脑,就是操作系统有点不同,很久以前有一台也出现过这种情况,当时不知道怎么给弄好了,好象也是尝试了很多方法,并给系统打了一个联想自己给的补丁就好了.

但是这台用同样的方法也不能成功.



另外,假如我用graphedit创建vmr-9成功,在这之前是需要安装Direct SDK包的,安装了SDK包后会不会改变系统环境???
zshuc 2006-07-13
  • 打赏
  • 举报
回复
终于弄好了,我到联想的网站上下载最新的驱动都解决不了问题,
我就把那台可以用的电脑中的比较旧的驱动给安装到这边就好了。

难道是厂商为了节约成本,驱动向前兼容性也越来越差?????
bitgold 2006-07-13
  • 打赏
  • 举报
回复
呵,原来是显卡驱动问题啊,估计以前你也是把驱动更新了解决问题的:)
zshuc 2006-07-13
  • 打赏
  • 举报
回复
刚才用GraphEdit试了一下,提示以下的问题:
The filter could not be created.Resources used by this filter may
already be in use.
没有安装DirectDraw,或者视频显卡的性能不合适.请确认显示模式不是16色.(Return
code :0x80040273)"


然后我用DxDiag查看了所有的信息,都是正确的,包括Direct3D之类的测试,我与另外一台联想电脑对比,发现区别在这台不能使用的电脑上的Driver版本更新.
真是郁闷!


显卡型号是:
VIA/S3G UniChrome Pro IGP
驱动版本号是: 6.14.0010.0223
zshuc 2006-07-13
  • 打赏
  • 举报
回复
谢谢老大,我试试!
happydeer 2006-07-12
  • 打赏
  • 举报
回复
用graphedit创建vmr-9,如果不成功,可能就是显卡的问题了。
bitgold 2006-07-12
  • 打赏
  • 举报
回复
正如lserlohn()所说,运行DXSDK\DirectShow\Bin目录下的VMRPlayer9.exe,如果这个都不能正常运行,那你的程序创建不了VMR9也就不奇怪了
zshuc 2006-07-12
  • 打赏
  • 举报
回复
bitgold(碎金)
lserlohn()
该机器的硬件的应该是能支持VMR9的,因为以前在同样型号的机器上,也出现过同样的问题,当时也是用了很多办法,就是上面的那些办法试过后就莫名其妙奇妙的好了.
但是这台机上却是怎么都不行,可能是由于操作系统安装的有所差别.

bitgold(碎金)
我不太想装MPC播放器,这个播放器装了后.我的程序很多功能就难以调试了.
请问有没有什么其它的办法打开VMR9的吗?能够在自己的程序中打开是最好的.
zshuc 2006-07-12
  • 打赏
  • 举报
回复
顶一下,难道没有人知道么???
lserlohn 2006-07-12
  • 打赏
  • 举报
回复
联想电脑,请问这个是集成显卡的那种吗?VMR9好像必须要硬件支持Direct8的显卡才可以。

你在电脑上试,最好安装SDK,编译运行里面的VMR9例子,看看能不能正常运行,在别的电脑上试也一样。
bitgold 2006-07-11
  • 打赏
  • 举报
回复
判断系统支不支持方法一:用GraphEdit查看DirectShow目录,如果有这个滤镜看是否能在GraphEdit里正常使用;方法二:用MPC播放器,设置输出,使用VMR9,看是否正常。
如果上面的都正常,那就需要跟踪你的程序了,也许程序对操作系统兼容不好,在别的机器能正常创建,而在这台机器上创建得不对。

2,543

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧