在介绍 DirectX 所呈现的问题之前,应当先介绍 .NET 托管环境。在 .NET 中,应用程序由 .NET Framework 托管,.NET Framework 为执行代码提供了强大且安全的环境。.NET 使编程人员摆脱了复杂且乏味、需要标准环境或
非托管环境的
基础设施编码。这些非托管任务包括(以及其它许多任务):
- 内存管理:当对象丢掉所有参考时,.NET 会提供自动垃圾收集
- 安全:.NET 提供运行时强制执行的基于代码和角色的权限分配。
- 类型管理:为支持语言间的兼容性,.NET 指定并实施了常见类型的子系统。
尽管此类功能为应用程序编程人员提供了一个清晰的高级框架用于新应用程序开发,但这种托管环境也为必须与非托管代码以及 API 代码共存与协作的代码带来了
互操作性挑战。应特别指出的是,"移动参考应用程序"的视频处理部分依赖于 DirectShow(一种 DirectX API)进行。
DirectShow API 以 C++ 和 COM 为基础。每个 DirectShow 组件都是一个实现必要抽象的 COM 组件。例如,DirectShow 组件实现了声音筛选,该声音筛选可用来删除视频/音频数据流中的背景噪音。