Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ważny
Informacje w tym temacie dotyczą wszystkich wersji systemu Windows 10 i nowszych. W tym miejscu będziemy odwoływać się do tych wersji jako "Windows", wywołując wszelkie wyjątki w razie potrzeby.
Biblioteka parasolowa to pojedyncza biblioteka, którą łączysz i która obejmuje wybrany podzbiór interfejsów API Win32. Na przykład biblioteka parasolowa o nazwie OneCore.lib obejmuje podzbiór interfejsów API Win32, które są wspólne dla wszystkich urządzeń Windows.
Interfejsy API w bibliotece zbiorczej mogą być zaimplementowane w różnych modułach (gdzie moduł to albo zestaw interfejsów API, albo biblioteka DLL). Jednak ta biblioteka ukrywa przed Tobą ten szczegół, dzięki czemu Twoja aplikacja jest bardziej przenośna między różnymi wersjami systemu operacyjnego. W aplikacji komputerowej lub sterowniku dołącz bibliotekę zbiorczą obejmującą zestaw interfejsów API, którymi jesteś zainteresowany, i to wszystko.
Co obejmuje biblioteka parasolowa
Biblioteka parasolowa obejmuje wybrany podzbiór interfejsów API. Nie jest to pełny indeks każdego interfejsu API w każdym module, z których korzysta, a dany interfejs API nie musi znajdować się w każdej bibliotece parasolowej.
Zestaw interfejsów API obsługiwanych przez bibliotekę zależy również od wersji pakietu SDK systemu Windows, względem której tworzysz kompilację. Nowszy pakiet SDK może dodać obsługę, której starszy nie ma.
Z obu tych powodów stronę referencyjną danego interfejsu API należy uznać za autorytatywne źródło informacji o tym, do której biblioteki należy utworzyć odwołanie. Tabela Requirements (Wymagania ) na tej stronie zawiera nazwy biblioteki tego interfejsu API.
Dostępne biblioteki
| Biblioteka | Opis |
|---|---|
| OneCore.lib | Obejmuje podzestaw interfejsów API Win32, które są wspólne dla wszystkich urządzeń Windows. Dołącz OneCore.lib (a nie żadną inną zbiorczą bibliotekę Win32), aby uzyskać dostęp do tych API. Jeśli dołączysz bibliotekę OneCore.lib i będziesz wywoływać tylko obsługiwane przez nią interfejsy API Win32, aplikacja klasyczna lub sterownik zostanie pomyślnie załadowany na wszystkich urządzeniach z systemem Windows. |
| OneCore_apiset.lib | Wariant zestawu API OneCore.lib. Jeśli dla interfejsu API jest dostępna nazwa zestawu interfejsów API, jest ona rozwiązywana przez bezpośredni import zestawu interfejsów API, więc podczas ładowania nie bierze udziału żaden pośredni moduł przekierowujący. Plik binarny, który łączy go, nie ma gwarancji uruchamiania as-is w wersjach Windows wydanych przed ustawieniem importowania przez interfejs API. |
| OneCoreUAP.lib | Obejmuje podzestaw interfejsów API Win32, które są wspólne dla wszystkich urządzeń Windows obsługujących środowisko wykonawcze systemu Windows (WinRT). Dołącz OneCoreUAP.lib (a nie żadną inną zbiorczą bibliotekę Win32), aby uzyskać dostęp do tych API. Jeśli dołączysz OneCoreUAP.lib i będziesz wywoływać tylko interfejsy API Win32, które są przez niego obsługiwane, Twoja aplikacja klasyczna lub sterownik zostanie pomyślnie załadowany na wszystkich urządzeniach z systemem Windows, które obsługują WinRT. |
| OneCoreUAP_apiset.lib | Wariant zestawu API OneCoreUAP.lib. Jeśli nazwa zestawu interfejsów API jest dostępna dla danego interfejsu API, jest rozwiązywana za pośrednictwem bezpośredniego importu zestawu interfejsów API, więc żaden pośredni moduł przekierowujący nie bierze udziału podczas ładowania. Plik binarny, który łączy go, nie ma gwarancji uruchamiania as-is w wersjach Windows wydanych przed ustawieniem importowania przez interfejs API. |
Nie łącz dwóch z tych bibliotek w jednym pliku binarnym. Każdy z nich służy do ograniczenia pliku binarnego do określonego zakresu interfejsu API, a połączenie z drugą biblioteką może uzależnić cię od interfejsów API wykraczających poza ten zakres.
Wybieranie między biblioteką a jej wariantem zestawu interfejsów API
W przypadku interfejsu API obsługiwanego przez oba warianty, oba będą korzystać z tej samej implementacji w czasie działania. Różni się nazwa, która trafia do tabeli importów pliku binarnego, a tym samym zakres wersji systemu Windows, na których może on działać.
- Połącz bibliotekę zwykłą (
OneCore.lib,OneCoreUAP.lib), jeśli potrzebujesz pojedynczego pliku binarnego, który jest również uruchamiany w wersjach Windows wydanych przed utworzeniem odpowiednich zestawów interfejsów API. Importuje starsze nazwy modułów systemu Windows, a przekazywanie odwrotne przekierowuje te importy w edycjach, które nie zawierają już oryginalnych modułów. - Dołącz wariant zestawu interfejsów API (
OneCore_apiset.lib,OneCoreUAP_apiset.lib), gdy plik binarny jest przeznaczony dla obecnych wersji systemu Windows. Preferowana jest nazwa zestawu API wszędzie tam, gdzie dla danego interfejsu API jest ona dostępna, dzięki czemu import jest rozwiązywany bezpośrednio do pliku binarnego zawierającego implementację, bez pośredniczącego forwardera. To bardziej wydajna forma. Tam, gdzie nie obowiązuje żadna nazwa zestawu API, używana jest nazwa modułu, tak samo jak w przypadku zwykłej biblioteki.
Żaden wybór nie zmienia interfejsów API, które można wywołać. Zmienia to sposób nazywania importów oraz to, jak daleko wstecz może działać Twój plik binarny.