LoadPackagedLibrary 函式 (winbase.h)
將指定的封裝模組及其相依性載入呼叫進程的位址空間。
語法
HMODULE LoadPackagedLibrary(
[in] LPCWSTR lpwLibFileName,
DWORD Reserved
);
參數
[in] lpwLibFileName
要載入之封裝模組的檔案名。 模組可以是程式庫模組, (.dll檔案) 或可執行模組 (.exe檔案) 。
如果此參數指定沒有路徑且省略副檔名的模組名稱,函式會將預設程式庫副檔名附加至模組名稱.dll。 若要防止函式將.dll附加至模組名稱,請在模組名稱字串中包含尾端點字元 (.) 。
如果此參數指定路徑,函式會搜尋模組的路徑。 路徑不能是路徑中的絕對路徑或包含 「.」。「 的相對路徑。 指定路徑時,請務必使用反斜線 (\) ,而不是正斜線 (/) 。 如需路徑的詳細資訊,請參閱 命名檔案、路徑和命名空間。
如果指定的模組已在進程中載入,函式會傳回載入模組的控制碼。 模組原本必須從進程的套件相依性圖形載入。
如果載入指定的模組會導致系統載入其他相關聯的模組,函式會先搜尋載入的模組,然後它會搜尋進程的套件相依性圖形。 如需詳細資訊,請參閱<備註>。
Reserved
此參數已保留備用。 必須是 0。
傳回值
如果函式成功,則傳回值是載入模組的控制碼。
如果函式失敗,則傳回值為 Null。 若要取得擴充的錯誤資訊,請呼叫 GetLastError。
備註
LoadPackagedLibrary函式是一種簡化版本的LoadLibraryEx。 封裝的應用程式可以使用 LoadPackagedLibrary 載入已封裝的模組。 未封裝的應用程式無法使用 LoadPackagedLibrary;如果未封裝的應用程式呼叫此函式,則會因為 APPMODEL_ERROR_NO_PACKAGE而失敗。
LoadPackagedLibrary 會傳回指定模組的控制碼,並遞增其參考計數。 如果模組已經載入,函式會將控制碼傳回至載入的模組。 呼叫進程可以使用 LoadPackagedLibrary 所傳回的控制碼來識別 GetProcAddress 函式呼叫中的模組。 使用 FreeLibrary 函式 釋放載入的模組,並遞減其參考計數。
如果函式必須搜尋指定的模組或其相依性,它只會搜尋進程的套件相依性圖表。 這是應用程式的套件加上應用程式套件資訊清單區段中所指定 <PackageDependency>
<Dependencies>
的任何相依性。 相依性會依其出現在資訊清單中的順序進行搜尋。 套件相依性圖形是在 <Dependencies>
應用程式套件資訊清單的 區段中指定。 相依性會依其出現在資訊清單中的順序進行搜尋。 搜尋會繼續進行,如下所示:
- 函式會先搜尋已載入的模組。 如果指定的模組原本是從進程的套件相依性圖形載入,則函式會傳回載入模組的控制碼。 如果指定的模組未從進程的套件相依性圖形載入,函式會傳回 Null。
- 如果模組尚未載入,函式會搜尋進程的套件相依性圖表。
- 如果函式找不到指定的模組或其相依性之一,函式就會失敗。
注意
在 Windows Phone,必須從 PhoneAppModelHost.dll
呼叫LoadPackagedLibrary。 不支援使用 Kernel32.dll
。
規格需求
最低支援的用戶端 | Windows 8 [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2012 [傳統型應用程式 |UWP 應用程式] |
目標平臺 | Windows |
標頭 | winbase.h (包含 Windows.h) |
程式庫 | Kernel32.lib |
DLL | Kernel32.dll |