C# Winform下使用微软的DirectX做视频播放器的源代码有很多,我使用的是Microsoft.DirectX.dll ,Microsoft.DirectX.AudioVideoPlayback.dll
DirectX SDK的版本有很多,最新版的SDK安装上之后,发现并没有上述的两个Dll文件。
还是换用旧版本Microsoft.DirectX 2008Augest。(基本上每年都会有发布两个版本的SDK,我使用的2007年的和2008年的SDK,实验均可行)
主要的问题是:Microsoft.DirectX.dll针对的版本是v1.1.4322,在Visual Studio 2010下使用.net4.0时会报错中断!
中断信息:“混合模式程序集是针对“v1.1.4322”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集。”
解决方法:在winform解决方案的项目中,添加app.config文件,并在其中添加代码:
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
参考:http://stackoverflow.com/questions/4018924/mixed-mode-assembly-is-built-against-version-v1-1-4322
参考:http://msdn.microsoft.com/zh-cn/library/bbx34a2h.aspx
这样就可以在.net4.0下顺利编译运行DirectX的视频播放器程序。