Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Wichtig
Die Informationen in diesem Thema gelten für alle Versionen von Windows 10 und höher. Wir bezeichnen diese Versionen hier als "Windows", wobei bei Bedarf Ausnahmen genannt werden.
Eine Dachbibliothek ist eine einzelne Bibliothek, die Sie verknüpfen und eine ausgewählte Teilmenge von Win32-APIs abdeckt. Beispielsweise deckt eine Dachbibliothek mit dem Namen OneCore.lib die Teilmenge von Win32-APIs ab, die für alle Windows Geräte gemeinsam sind.
Die APIs in einer Dachbibliothek können in einem Bereich von Modulen implementiert werden (wobei ein Modul entweder ein API-Set oder eine DLL ist). Aber die Dachbibliothek abstrahiert diese Details von Ihnen, wodurch Ihre App in betriebssystemübergreifenden Versionen portierbarer wird. Verknüpfen Sie in Ihrer Desktop-App oder Ihrem Treiber die Dachbibliothek, die den Satz von APIs abdeckt, die Sie interessieren, und das ist alles, was Sie tun müssen.
Was eine Dachbibliothek abdeckt
Eine Dachbibliothek deckt eine ausgewählte Teilmenge von APIs ab. Es handelt sich nicht um einen vollständigen Index jeder API in jedem Modul, aus dem es zeichnet, und eine bestimmte API ist nicht unbedingt in jeder Dachbibliothek vorhanden.
Der Satz von APIs, die eine Bibliothek abdeckt, ist auch spezifisch für die Windows SDK-Version, mit der Sie erstellen. Ein späteres SDK kann eine Abdeckung hinzufügen, die ein früheres sdk nicht hat.
Betrachten Sie aus beiden Gründen die Referenzseite zu einer bestimmten API als maßgebliche Quelle dafür, welche Bibliothek eingebunden werden soll. Die Tabelle "Anforderungen" auf dieser Seite benennt die Bibliothek für diese API.
Verfügbare Bibliotheken
| Bibliothek | Beschreibung |
|---|---|
| OneCore.lib | Deckt die Teilmenge der Win32-APIs ab, die für alle Windows Geräte gemeinsam sind. Binden Sie OneCore.lib (und keine andere Win32-Dachbibliothek) ein, um auf diese APIs zugreifen zu können. Wenn Sie OneCore.lib einbinden und nur die Win32-APIs aufrufen, die davon abgedeckt werden, wird Ihre Desktop-App oder Ihr Treiber auf allen Windows-Geräten erfolgreich geladen. |
| OneCore_apiset.lib | Die API-Satzvariante von OneCore.lib. Wenn ein API-Satzname für eine API verfügbar ist, wird er durch einen direkten API-Satzimport aufgelöst, sodass zur Ladezeit kein Zwischenweiterleitungsmodul beteiligt ist. Es ist nicht garantiert, dass eine Binärdatei, die diese API-Sets importiert, in Windows-Versionen, die vor der Veröffentlichung dieser API-Sets erschienen sind, unverändert ausgeführt werden kann. |
| OneCoreUAP.lib | Deckt die Teilmenge der Win32-APIs ab, die für alle Windows Geräte gelten, die die Windows-Runtime (WinRT) unterstützen. Verbinden Sie OneCoreUAP.lib (und keine andere übergeordnete Win32-Bibliothek), um auf diese APIs zuzugreifen. Wenn Sie OneCoreUAP.lib einbinden und nur die Win32-APIs aufrufen, die davon abgedeckt werden, wird Ihre Desktop-App oder Ihr Treiber auf allen Windows-Geräten, die WinRT unterstützen, erfolgreich geladen. |
| OneCoreUAP_apiset.lib | Die API-Satzvariante von OneCoreUAP.lib. Wenn ein API-Satzname für eine API verfügbar ist, wird er durch einen direkten API-Satzimport aufgelöst, sodass zur Ladezeit kein Zwischenweiterleitungsmodul beteiligt ist. Es ist nicht garantiert, dass eine Binärdatei, die diese API-Sets importiert, in Windows-Versionen, die vor der Veröffentlichung dieser API-Sets erschienen sind, unverändert ausgeführt werden kann. |
Kombinieren Sie nicht zwei dieser Bibliotheken in einer Binärdatei. Jede ist vorhanden, um ihre Binärdatei auf eine bestimmte API-Oberfläche zu beschränken, und das Verknüpfen einer zweiten Bibliothek kann Sie an APIs außerhalb dieser Oberfläche binden.
Auswählen zwischen einer Bibliothek und der zugehörigen API-Satzvariante
Für eine API, die beide Varianten abdecken, erreichen die beiden die gleiche Implementierung zur Laufzeit. Was sich unterscheidet, ist der Name, der in der Importtabelle Ihrer Binärdatei endet, und daher der Bereich der Windows Versionen, auf denen die Binärdatei ausgeführt werden kann.
- Verknüpfen Sie die normale Bibliothek (
OneCore.lib,OneCoreUAP.lib), wenn Sie eine einzelne Binärdatei benötigen, die auch auf Windows-Versionen läuft, die veröffentlicht wurden, bevor es die entsprechenden API-Sets gab. Sie importiert Namen älterer Windows-Module, und die umgekehrte Weiterleitung leitet diese Importe bei Editionen um, die die ursprünglichen Module nicht mehr enthalten. - Verknüpfen Sie die API-Satz-Variante (
OneCore_apiset.lib,OneCoreUAP_apiset.lib), wenn Ihre Binärdatei auf aktuelle Versionen von Windows abzielt. Es bevorzugt einen API-Satznamen, wo immer ein API-Satz für die API verfügbar ist, sodass der Import direkt in die Binärdatei aufgelöst wird, die die Implementierung hostet, ohne dass eine Weiterleitung dazwischen besteht. Das ist die effizientere Form. Wenn kein API-Satzname gilt, verwendet er den Modulnamen, identisch mit der einfachen Bibliothek.
Keine der beiden Optionen ändert, welche APIs Sie aufrufen können. Es ändert, wie Ihre Importe benannt werden und wie weit zurück Ihre Binärdatei lauffähig ist.