库文件和编译器设置
[与此页面关联的功能 Windows Media Format 11 SDK 是一项旧功能。 它已被源读取器和接收器编写器取代。 源读取器和接收器编写器已针对Windows 10和Windows 11进行了优化。 如果可能,Microsoft 强烈建议新代码使用源读取器和接收器编写器,而不是 Windows Media 格式 11 SDK。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]
若要使用 Windows Media 格式 SDK 开发应用程序,必须使用Microsoft Visual C++版本 6.0 或更高版本。 唯一适合开发的编程语言是 C++ 和 C。
下表描述了此 SDK 中包含的各种头文件的内容。
头文件 | 描述 |
---|---|
asferr.h | 定义与 ASF 文件操作相关的错误代码。 此标头包含在 wmsdk.h 中。 |
drmexternals.h | 定义用于数字版权管理 (DRM) 的结构、枚举和常量。 编写使用 DRM 的应用程序时,请包含此标头。 |
dshowasf.h | 定义 Microsoft DirectShow QASF 筛选器。 编写创建或读取 ASF 文件的 DirectShow 应用程序时,请包含此标头。 有关详细信息,请参阅 DirectShow 和 Windows Media。 |
msnetobj.h | 定义 IRMGetLicense 接口,该接口在随 Windows Media Format SDK 一起安装的某个运行时库中实现。 |
nserror.h | 定义 Windows 媒体技术的错误代码。 这些错误代码中只有一部分与 Windows Media Format SDK 相关。 此标头包含在 wmsdk.h 中。 |
wmdxva.h | 包括启用 Microsoft DirectX 视频加速以播放基于 Windows Media 的内容所需的其他标头和定义。 有关详细信息,请参阅 启用 DirectX 视频加速。 |
wmnetsourcecreator.h | 包含创建网络源插件所需的信息。 |
wmsbuffer.h | 定义缓冲区对象使用的接口。 创建自己的用于文件读取的缓冲区时,请包含此标头。 |
wmsdk.h | 使用 Windows Media Format SDK 的应用程序的main标头。 此标头不包含定义,但包含 asferr.h、nserror.h、windows.h 和 wmsdkidl.h。 对于使用此 SDK 的所有应用程序,包括此标头。 |
wmsdkidl.h | 为 Windows Media Format SDK 的大多数对象定义接口、函数、结构、枚举和常量。 此标头包含在 wmsdk.h 中。 |
wmsinternaladminnetsource.h | 定义网络源插件的接口。 |
wmsysprf.h | 定义系统配置文件的常量。 将此标头包含在按标识符加载系统配置文件的应用程序中。 |
若要使用 Windows Media Format SDK,必须正确配置编译器。 在调试模式下生成的配置与发布模式的配置不同。 根据下表配置设置。 所有这些设置都在“项目设置”对话框中配置。 若要访问对话框,请从“项目”菜单中选择“设置”。
设置 | 调试值 | 发布值 |
---|---|---|
(C/C++ 选项卡,类别 = 代码生成) 使用运行时库 | 调试多线程 DLL | 多线程 DLL |
(链接选项卡,类别 = 常规) 忽略所有默认库 (检查框) | 选定 | 选定 |
(链接选项卡,类别 = 常规) 对象/库模块 | 包括 Msvcrtd.lib,Wmvcore.lib.Do 不包括 Libc.lib 或任何变体。 |
包括 Msvcrt.lib,Wmvcore.lib.Do 不包括 Libc.lib 或任何变体。 |
如果使用 Microsoft Visual Studio .NET,则设置已更改为不同的位置,如下表所示。 所有这些设置都在 “属性页 ”对话框中配置。 若要访问对话框,请在“解决方案资源管理器”窗格中右键单击项目,然后从上下文菜单中选择“属性”。
设置 | 调试值 | 发布值 |
---|---|---|
(配置属性 / C/C++ / 代码生成) 运行时库 | 多线程调试 DLL (/MDd) | 多线程 DLL (/MD) |
(配置属性/链接器/输入) 其他依赖项 | 包括 Msvcrtd.lib,Wmvcore.lib.Do 不包括 Libc.lib 或任何变体。 |
包括 Msvcrt.lib,Wmvcore.lib.Do 不包括 Libc.lib 或任何变体。 |
(配置属性/链接器/输入) 忽略所有默认库 | 是 | 是 |
如果要延迟加载Wmvcore.dll或任何其他 DLL,请使用 Microsoft Visual C++ 6.0 中的链接选项 /DELAYLOAD,或在 Microsoft Visual C++ .NET 中使用延迟加载的 DLL。
此外,还需要包含 Windows Media Format SDK 的库和标头的目录。 若要查找 Visual C++ 6.0 的目录设置,请在“工具”菜单上单击“选项”,然后单击“目录”选项卡。使用 Visual C++ .NET 时,单击“工具”菜单上的“选项”,然后在选项列表中选择“项目/VC++ 目录”。 添加目录,如下表所示。 如果更改了 Windows Media 格式 SDK 的安装目录,则路径将有所不同。
目录类型 | 默认路径 |
---|---|
包含文件 | C:\WMSDK\WMFSDK11\include |
库文件 | C:\WMSDK\WMFSDK11\lib |
如果使用平台 SDK,则默认路径如下所示:
目录类型 | 默认路径 |
---|---|
包含文件 | C:\Program Files\Microsoft SDsK\Windows\v6.0\Include |
库文件 | C:\Program Files\Microsoft SDsK\Windows\v6.0\Lib |
在调用任何创建函数之前,应通过调用 Coinitialize 或 CoinitializeEx 初始化 COM。 可以使用自由线程模型或单元线程模型,但单元线程模型对应用程序施加线程限制。 有关 Microsoft 组件对象模型 (COM) 的详细信息,请参阅 Microsoft 网站上的 COM 页面。
注意 播放或创建受数字版权管理 (DRM) 保护的文件的应用程序需要从 Microsoft 单独获取的个性化静态库。 有关详细信息,请参阅 Microsoft 网站上的 Windows 媒体许可表单。 如果使用 DRM 库,则不应链接到 Wmvcore.lib。