程式庫檔案和編譯器設定
[與此頁面相關聯的功能 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 的安裝目錄,您的路徑將會不同。
目錄類型 | 預設路徑 |
---|---|
Include 檔案 | C:\WMSDK\WMFSDK11\include |
程式庫檔案 | C:\WMSDK\WMFSDK11\lib |
如果您使用平臺 SDK,則預設路徑會顯示如下:
目錄類型 | 預設路徑 |
---|---|
Include 檔案 | C:\Program Files\Microsoft SDsK\Windows\v6.0\Include |
程式庫檔案 | C:\Program Files\Microsoft SDsK\Windows\v6.0\Lib |
呼叫任何建立函式之前,應該使用對Coinitialize 或 CoinitializeEx的呼叫來初始化 COM。 您可以使用免費執行緒模型或 Apartment 執行緒模型,但 Apartment 執行緒模型會對應用程式施加執行緒限制。 如需 Microsoft 元件物件模型 (COM) 的詳細資訊,請參閱 Microsoft 網站上的COM 頁面。
注意 播放或建立受 Digital Rights Management 保護的檔案的應用程式 (DRM) 需要個別化的靜態程式庫,且必須從 Microsoft 個別取得。 如需詳細資訊,請參閱 Microsoft 網站上的Windows 媒體授權表單。 如果您使用 DRM 程式庫,則不應該連結至 Wmvcore.lib。