Windows-paraplubibliotheken

Belangrijk

De informatie in dit onderwerp is van toepassing op alle versies van Windows 10 en hoger. We verwijzen hier naar deze versies als 'Windows', waarbij eventuele uitzonderingen waar nodig worden aangeroepen.

Een paraplubibliotheek is één bibliotheek die u koppelt en die een geselecteerde subset van Win32-API's omvat. Een paraplubibliotheek met de naam OneCore.lib omvat bijvoorbeeld de subset van Win32-API's die gebruikelijk zijn voor alle Windows apparaten.

De API's in een paraplubibliotheek kunnen worden geïmplementeerd in een reeks modules (waarbij een module een API-set is of een DLL). Maar de paraplubibliotheek abstraheert die details van u af, waardoor uw app overdraagbaarder wordt in besturingssysteemversies. Neem in uw desktop-app of -stuurprogramma de overkoepelende bibliotheek op voor de API's waarin u geïnteresseerd bent, en dat is alles wat u hoeft te doen.

Wat een paraplubibliotheek dekt

Een paraplubibliotheek heeft betrekking op een geselecteerde subset van API's. Het is geen volledige index van elke API in elke module waaruit deze wordt opgehaald en een bepaalde API is niet noodzakelijkerwijs aanwezig in elke paraplubibliotheek.

De set API's die door een bibliotheek worden behandeld, is ook specifiek voor de Windows SDK-versie waarop u bouwt. Een latere SDK kan dekking toevoegen die een eerdere SDK niet heeft.

Om die twee redenen beschouwt u de referentiepagina voor een specifieke API als de gezaghebbende bron voor de bibliotheek waarnaar u moet linken. De tabel Vereisten op die pagina noemt de bibliotheek voor die API.

Beschikbare bibliotheken

Bibliotheek Beschrijving
OneCore.lib Behandelt de subset van Win32-API's die gebruikelijk zijn voor alle Windows apparaten. Koppel OneCore.lib (en geen enkele andere overkoepelende Win32-bibliotheek) om toegang te krijgen tot die API's. Als u OneCore.lib koppelt en alleen Win32-API's aanroept die daardoor worden ondersteund, wordt uw desktop-app of stuurprogramma correct geladen op alle Windows-apparaten.
OneCore_apiset.lib De API-setvariant van OneCore.lib. Wanneer een API-setnaam beschikbaar is voor een API, wordt deze omgezet via een direct API-set importeren, dus er is geen tussenliggende doorstuurmodule betrokken bij het laden. Een binair bestand dat ernaar linkt, kan niet zonder meer worden uitgevoerd op versies van Windows die zijn uitgebracht voordat de API-sets die het importeert beschikbaar waren.
OneCoreUAP.lib Behandelt de subset van Win32-API's die gebruikelijk zijn voor alle Windows apparaten die ondersteuning bieden voor de Windows Runtime (WinRT). Koppel OneCoreUAP.lib (en geen enkele andere Win32-paraplubibliotheek) om toegang te krijgen tot die API's. Als u linkt met OneCoreUAP.lib, en u alleen Win32-API's aanroept die daardoor worden ondersteund, wordt uw desktop-app of -stuurprogramma correct geladen op alle Windows-apparaten die WinRT ondersteunen.
OneCoreUAP_apiset.lib De API-setvariant van OneCoreUAP.lib. Wanneer een API-setnaam beschikbaar is voor een API, wordt deze omgezet via een direct API-set importeren, dus er is geen tussenliggende doorstuurmodule betrokken bij het laden. Een binair bestand dat ernaar linkt, kan niet zonder meer worden uitgevoerd op versies van Windows die zijn uitgebracht vóór de API-sets die het importeert.

Combineer twee van deze bibliotheken niet in één binair bestand. Elk daarvan bestaat om je binaire bestand te beperken tot een bepaald API-gebied, en het koppelen van een tweede bibliotheek kan je binden aan API's buiten dat gebied.

Kiezen tussen een bibliotheek en de bijbehorende API-setvariant

Voor een API die door beide varianten wordt behandeld, bereiken de twee dezelfde implementatie tijdens runtime. Wat verschilt is de naam die in de importtabel van uw binaire bestand terechtkomt en daarom het bereik van Windows versies waarop het binaire bestand kan worden uitgevoerd.

  • Koppel de bibliotheek zonder opmaak (OneCore.lib, OneCoreUAP.lib) wanneer u één binair bestand nodig hebt dat ook wordt uitgevoerd op versies van Windows uitgebracht voordat de relevante API-sets bestonden. Het importeert verouderde Windows modulenamen en met reverse forwarding worden deze importbewerkingen omgeleid op edities die niet langer de oorspronkelijke modules bevatten.
  • Koppel de API-setvariant (OneCore_apiset.lib, OneCoreUAP_apiset.lib) wanneer uw binaire bestand is gericht op huidige versies van Windows. Het gebruikt bij voorkeur een API-setnaam wanneer er voor de API een beschikbaar is, zodat de import rechtstreeks wordt gekoppeld aan het binaire bestand dat de implementatie host, zonder tussenliggende doorverwijzing. Dat is de efficiëntere vorm. Als er geen API-setnaam van toepassing is, wordt de modulenaam gebruikt, net als bij de gewone bibliotheek.

Geen van beide opties verandert welke API's u kunt aanroepen. Het verandert hoe je imports worden genoemd en hoe ver terug je binary kan draaien.

Zie ook