不安装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,这样就不需要读注册表的!