首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > 多媒体 >

不安装ffdshow而使用他!解决方法

2012-03-14 
不安装ffdshow而使用他!!我想不安装ffdshow,而使用ffdshow.ax在自己程序里解码,我保留了ffdshow.ax, libmp

不安装ffdshow而使用他!!
我想不安装ffdshow,而使用ffdshow.ax在自己程序里解码,我保留了ffdshow.ax, libmplayer.dll和libavcodec.dll三个文件,并且导出了ffdshow的注册表。

  我用ShellExecute(NULL,_T("open"),_T("regedit.exe"),_T("/s .\\filter\\ffdshow.reg"),NULL,SW_HIDE);在代码里调用regedit,请问我这样写的当前路径究竟是哪个路径,是regedit.exe的路径,还是我程序可执行文件的路径?

  我即使把路径改为绝对路径,在代码里执行ShellExecute,还是会弹出ffdshow compatibility manager对话框,我确定ShellExecute是在构建Graph前执行的,但如果我双击ffdshow.reg导入它,再运行程序,就没有这个对话框。我怎么做可以在代码里注册并且不弹出ffdshow compatibility manager对话框?

  还有我想查看ShellExecute的返回值,怎么消除这个警告warning C4311: “类型转换”: 从“HINSTANCE”到“int”的指针截断,因为我写一个不存在的路径返回值也会大于32,是这个警告引起的吗??

[解决办法]
看它的ax是否依赖其他需要注册的东西,如果不需要,loadlibrary直接当成dll用就行,
[解决办法]
你直接LoadLibrary加载xxxx.ax文件,然后GetProcAddress(DllGetClassObject) 获取ClassFactory去local loading,这样就不需要读注册表的!

热点排行