好久没来写博客了,有点懒的缘故,呵呵,今天学到一些新知识,过来记录一下过程。
事情的缘由是:我想用directshow写filter,但是我不想写那么多代码,搜了一把,果然有个VS下的wizard可用,但是是VS2003的。OK,在VS2010下面能不能用呢?原理上应该是可行的,看到有一外国哥们在VS2005上是成功的,那VS2010应该也很有希望。
从这里下载wizard的安装程序下来,然后安装,安装的时候请把下面的两个框框内容按照要求设置好,当然是根据你本机的配置来:
拷贝安装目录下的VCWizards和vcprojects至VC的安装目录中,然后进入VC安装目录,注意,是VC的目录哦,xxx\Microsoft Visual Studio 10.0\VC。然后对VCWizards和vcprojects两个目录开刀。
1.进入vcprojects,找到DSWizard.vsz,用文本编辑器打开,内容改为
VSWIZARD 7.0
Wizard=VsWizard.VsWizardEngine.10.0 //这里根据VS的版本来,vs2008为9.0 VS2005为8.0
Param="WIZARD_NAME = DSWizard"
Param="RELATIVE_PATH = VCWizards"
Param="FALLBACK_LCID = 1033"
2.返回上级目录,进入VCWizards目录,进入DSWizard\Scripts\1033,找到default.js,用文本编辑器打开,修改其中的“vcproj”这个单词为“vcxproj”(注意哦,因为博主用的是VS2010,所以这里要改为vcxproj,如果是VS2008,2005则不需要改动).
3.修改js中的SolutionDir为ProjectDir,修改'.ax'为'.dll'(修正def文件找不到的BUG以及方便自动注册)
这样改动之后就可以看到VS中已经有DSWizard了,如图所示:
再用来创建下项目编译一下:
选择filter类型:
编译生成什么的都是OK的,程序会自动注册。
用GraphEdit可以看到我们的Filter
这只是最基本的让DSWizard可用,如果想让它更无缝地融入我们的IDE,还要多下点功夫,时间太晚了,休息去了,有兴趣的同学可以研究下vcprojects和VCWizards下的文件,把这个做得更好。
为了让DSWizard显示在项目创建的侧边栏中(按以上步骤操作只能让DSWizard显示在“VC++”这个全局项目视图下),需要在VCProjects目录中创建DSWizard目录,并创建DSWizard.vcdir文件,文件内容为:
..\DSWizard.vsz|{1B027A40-8F43-11D0-8D11-00A0C92BC942}|#1161|1|#1162|{1B027A40-8F43-11D0-8D11-00A0C92BC942}|0|4096|#1154