Compartilhar via


Bibliotecas estáticas (C++/CX)

Uma biblioteca estática usada em um aplicativo da UWP (Plataforma Universal do Windows) pode conter código C++ padrão ISO, incluindo tipos STL, e também chamadas a APIs Win32 que não são excluídas da plataforma de aplicativos do Windows Runtime. Uma biblioteca estática consome componentes do Windows Runtime e pode criar componentes dele com algumas restrições.

Criando bibliotecas estáticas

As instruções para criar um novo projeto variam dependendo da versão do Visual Studio instalada. Para ver a documentação da sua versão preferencial do Visual Studio, use o controle seletor de Versão. Ele é encontrado na parte superior da tabela de conteúdo nesta página.

Para criar uma biblioteca estática UWP no Visual Studio

  1. Na barra de menu, escolha Arquivo>Novo>Projeto para abrir a caixa de diálogo Criar um nono projeto.

  2. Na parte superior da caixa de diálogo, defina Linguagem como C++, Plataforma como Windows e Tipo de projeto como UWP.

  3. Na lista filtrada de tipos de projeto, escolha Biblioteca Estática (Universal do Windows – C++/CX) e escolha Avançar. Na próxima página, dê um nome ao projeto e especifique o local do projeto, se desejar.

  4. Escolha o botão Criar para criar o projeto.

Para criar uma biblioteca estática UWP no Visual Studio 2017 ou no Visual Studio 2015

  1. Na barra de menus, escolha Arquivo>Novo>Projeto. Em Visual C++>Windows Universal, escolha Biblioteca Estática (Universal do Windows).

  2. No Gerenciador de Soluções, abra o menu de atalho para o projeto e escolha Propriedades. Na caixa de diálogo Propriedades, na páginaConfiguração das Propriedades>C/C++, defina Consumir extensão do Windows Runtime como Sim (/ZW).

Ao compilar uma nova biblioteca estática, se você efetuar uma chamada para a API do Win32 que foi excluída para aplicativos UWP, o compilador exibirá o erro C3861, "Identificador não encontrado". Para procurar um método alternativo com suporte do Windows Runtime, consulte Alternativas às APIs do Windows em aplicativos UWP.

Se você adicionar um projeto de biblioteca estática C++ a uma solução de aplicativo UWP, talvez seja necessário atualizar as configurações de propriedade do projeto de biblioteca para que a propriedade de suporte UWP seja definida como Sim. Sem essa configuração, o código a seguir é compilado e vinculado, mas um erro ocorre quando você tenta verificar o aplicativo para o Microsoft Store. A biblioteca estática deve ser compilada com as mesmas configurações do compilador do projeto que a consome.

Se você consumir uma biblioteca estática que cria classes públicas ref , as classes de interface pública ou as classes de valor público, o vinculador gerará este aviso:

aviso LNK4264: arquivar arquivo de objeto compilado com /ZW em uma biblioteca estática. Observe que, na criação de tipos do Windows Runtime, não é recomendado vincular a uma biblioteca estática que contêm metadados do Windows Runtime.

Você poderá ignorar com segurança o aviso somente se a biblioteca estática não estiver produzindo componentes do Windows Runtime consumidos fora da própria biblioteca. Se a biblioteca não consumir um componente que ela define, o vinculador poderá otimizar a implementação, mesmo que os metadados públicos contenham as informações de tipo. Isso significa que os componentes públicos em uma biblioteca estática serão compilados, mas não serão ativados no tempo de execução. Por esse motivo, qualquer componente do Windows Runtime destinado ao consumo por outros componentes ou aplicativos deverá ser implementado em uma DLL (biblioteca de vínculo dinâmico).

Confira também

Threading e Marshaling