最近交接工作,拿了一个别人的directshow开发的网络视频播放工程,重新编译,调试发现无法启动应用程序(RELEASE 下可以编过,下载并安装了vcredist_x86.exe),网上的同僚有不少解决方案,什么安装补丁等等之类的,不过并没有解决我的问题,看来自己的问题还得自己搞定。
首先我用了系统事件查看器,查看了错误事件:
错误是找不到程序集Microsoft.VC80.DebugCRT, 版本为“8.0.50727.6159”,在C盘的winsxs下查找该运行时库,发现没有该程序集。发现了问题,是我拷贝过来的工程的directshow静态库是基于“8.0.50727.6159”的运行时库而编译的,而我目前的程序集是“8.0.50727.762”,所以调试的时候始终无法启动,重新编译directshow的baseclass(也可以下载对应的程序集),ok。
此外通过查看应用程序的manifest.res也可以看出问题来,以文本方式打开,可以发现该应用程序对于同一个库(dependency标签下Microsoft.VC80.DebugCRT)基于两个版本。
以上是我的解决方法,希望对大家有帮助,O(∩_∩)O哈哈~