库文件和编译器设置
[与此页面关联的功能(Windows Media Format 11 SDK)是一项旧功能。 它已被 源读取器 和 接收器编写器取代。 源读取器 和 接收器编写器 已针对 Windows 10 和 Windows 11 进行了优化。 Microsoft强烈建议新代码尽可能使用 源读取器 和 接收器编写器,而不是 Windows 媒体格式 11 SDK。 Microsoft建议重写使用旧 API 的现有代码,以尽可能使用新 API。]
若要使用 Windows 媒体格式 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 媒体格式 SDK 一起安装的运行时库中实现。 |
nserror.h | 定义 Windows 媒体技术的错误代码。 只有这些错误代码的子集与 Windows 媒体格式 SDK 相关。 此标头包含在 wmsdk.h 中。 |
wmdxva.h | 包括启用 Microsoft DirectX 视频加速以播放基于 Windows 媒体的内容所需的其他标头和定义。 有关详细信息,请参阅 启用 DirectX 视频加速。 |
wmnetsourcecreator.h | 包含创建网络源插件所需的信息。 |
wmsbuffer.h | 定义缓冲区对象使用的接口。 创建自己的用于文件读取的缓冲区时,请包含此标头。 |
wmsdk.h | 使用 Windows 媒体格式 SDK 的应用程序的主标头。 此标头不包含定义,但包括 asferr.h、nserror.h、windows.h 和 wmsdkidl.h。 使用此 SDK 为所有应用程序包含此标头。 |
wmsdkidl.h | 为 Windows 媒体格式 SDK 的大部分对象定义接口、函数、结构、枚举和常量。 此标头包含在 wmsdk.h 中。 |
wmsinternaladminnetsource.h | 定义网络接口。 |
wmsysprf.h | 定义系统配置文件的常量。 在按标识符加载系统配置文件的应用程序中包含此标头。 |
若要使用 Windows 媒体格式 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 媒体格式 SDK 的库和标头的目录。 若要查找 Visual C++ 6.0 的目录设置,请在“工具”菜单上,单击 选项,然后单击“目录”选项卡。使用 Visual C++ .NET 时,单击 工具 菜单上 选项,然后在选项列表中选择“项目/VC++ 目录”。 添加目录,如下表所示。 如果更改了 Windows 媒体格式 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 |
在调用任何创建函数之前,应通过调用 com 初始化 Coinitialize 或 CoinitializeEx。 可以使用自由线程模型或单元线程模型,但单元线程模型对应用程序施加线程限制。 有关Microsoft组件对象模型(COM)的详细信息,请参阅 Microsoft网站的 COM 页面。
注意, 播放或创建受数字权限管理(DRM)保护的文件的应用程序需要单独的静态库,该库必须独立于Microsoft获取。 有关详细信息,请参阅 Microsoft网站的 Windows 媒体许可表单。 如果使用 DRM 库,则不应链接到 Wmvcore.lib。