Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Importante
As informações neste tópico aplicam-se a todas as versões do Windows 10 e posteriores. Referir-nos-emos aqui a essas versões como "Windows", assinalando quaisquer exceções sempre que necessário.
Uma biblioteca agregadora é uma única biblioteca à qual faz a ligação e que abrange um subconjunto selecionado das APIs Win32. Por exemplo, uma biblioteca guarda-chuva chamada OneCore.lib cobre o subconjunto de APIs Win32 que são comuns a todos os dispositivos Windows.
As APIs em uma biblioteca guarda-chuva podem ser implementadas em uma variedade de módulos (onde um módulo é um conjunto de API ou uma DLL). Mas a biblioteca guarda-chuva abstrai esse detalhe de você, tornando seu aplicativo mais portátil em todas as versões do sistema operacional. Na sua aplicação para computador ou controlador, associe a biblioteca agregadora que abrange o conjunto de APIs em que está interessado, e é tudo o que precisa de fazer.
O que uma biblioteca guarda-chuva cobre
Uma biblioteca guarda-chuva cobre um subconjunto selecionado de APIs. Não é um índice completo de todas as APIs em cada módulo de onde se baseia, e uma dada API não está necessariamente presente em todas as bibliotecas guarda-chuva.
O conjunto de APIs que uma biblioteca cobre também é específico para a versão do SDK do Windows contra a qual se constrói. Um SDK posterior pode adicionar cobertura que um anterior não tem.
Por essas duas razões, considere a página de referência de uma API específica como a fonte autorizada para determinar a biblioteca a associar. A tabela de Requisitos nessa página nomeia a biblioteca dessa API.
Bibliotecas disponíveis
| Biblioteca | Descrição |
|---|---|
| OneCore.lib | Abrange o subconjunto de APIs Win32 que são comuns a todos os dispositivos Windows. Link OneCore.lib (e nenhuma outra biblioteca guarda-chuva Win32) para aceder a essas APIs. Se criares uma ligação com OneCore.lib e chamares apenas as APIs Win32 que este abrange, a tua aplicação de ambiente de trabalho ou controlador é carregado com êxito em todos os dispositivos Windows. |
| OneCore_apiset.lib | A variante do conjunto de APIs de OneCore.lib. Quando um nome de conjunto de API está disponível para uma API, este resolve-se através de uma importação direta de conjunto de API, pelo que não está envolvido nenhum módulo de encaminhamento intermédio no momento do carregamento. Não é garantido que um binário que estabelece ligação aos conjuntos de APIs que importa funcione, tal como está, em versões do Windows lançadas antes desses conjuntos de APIs. |
| OneCoreUAP.lib | Abrange o subconjunto de APIs Win32 que são comuns a todos os dispositivos Windows que suportam o Windows Runtime (WinRT). Link OneCoreUAP.lib (e nenhuma outra biblioteca guarda-chuva Win32) para aceder a essas APIs. Se fizeres a ligação a OneCoreUAP.lib, e chamares apenas as APIs Win32 que este abrange, a tua aplicação para computador ou controlador é carregado com êxito em todos os dispositivos com Windows que suportam WinRT. |
| OneCoreUAP_apiset.lib | A variante do conjunto de APIs de OneCoreUAP.lib. Quando um nome de conjunto de API está disponível para uma API, este resolve-se através de uma importação direta de conjunto de API, pelo que não está envolvido nenhum módulo de encaminhamento intermédio no momento do carregamento. Um binário que estabeleça ligação com ela não tem garantia de ser executado tal como está em versões do Windows lançadas antes dos conjuntos de APIs que importa. |
Não combines duas destas bibliotecas num único binário. Cada um existe para confinar o seu binário a uma superfície API específica, e ligar uma segunda biblioteca pode vinculá-lo a APIs fora dessa superfície.
Escolher entre uma biblioteca e a sua variante do conjunto de APIs
Para uma API que ambas as variantes cobrem, as duas atingem a mesma implementação em tempo de execução. O que difere é o nome que acaba por constar da tabela de importação do seu binário e, portanto, a gama de versões do Windows em que o binário pode ser executado.
- Liga a biblioteca simples (
OneCore.lib,OneCoreUAP.lib) quando precisares de um único binário que também corra em versões do Windows lançadas antes da existência dos conjuntos de APIs relevantes. Importa nomes legados de módulos do Windows, e o encaminhamento reverso redireciona essas importações para edições que já não transportam os módulos originais. - Associe a variante do conjunto de APIs (
OneCore_apiset.lib,OneCoreUAP_apiset.lib) quando o binário se destinar às versões atuais do Windows. Prefere um nome de conjunto de API sempre que esteja disponível para a API, para que a importação seja resolvida diretamente para o binário que hospeda a implementação, sem encaminhador intermédio. Essa é a forma mais eficiente. Quando não se aplica nenhum nome de conjunto de API, utiliza o nome do módulo, tal como a biblioteca simples.
Nenhuma das opções altera quais APIs podes chamar. Muda a forma como as importações são nomeadas e até onde o binário pode recuar.