連結庫檔案和編譯程序設定
[與此頁面相關聯的功能 Windows Media Format 11 SDK是舊版功能。 來源讀取器 和 接收寫入器已取代它。 來源讀取器 和 接收寫入器 已針對 Windows 10 和 Windows 11 優化。 Microsoft強烈建議新程式代碼盡可能使用 來源讀取器 和 接收寫入器,而不是 Windows Media Format 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 |
呼叫任何建立函式之前,應該使用呼叫 Coinitialize 或 CoinitializeEx來初始化 COM。 您可以使用免費線程模型或 Apartment 線程模型,但 Apartment 線程模型會對應用程式施加線程限制。 如需Microsoft元件物件模型的詳細資訊,請參閱 Microsoft 網站的 COM 頁面。
注意 播放或建立受數位版權管理 (DRM) 保護之檔案的應用程式需要個別的靜態庫,且必須與Microsoft分開取得。 如需詳細資訊,請參閱 Microsoft 網站的 Windows 媒體授權表單。 如果您使用DRM連結庫,則不應該連結到Wmvcore.lib。