Partilhar via


Bibliotecas estáticas (C++/CX)

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

Criação de bibliotecas estáticas

As instruções para criar um novo projeto variam dependendo de qual versão do Visual Studio você instalou. Para ver a documentação da sua versão preferida do Visual Studio, use o controlador de seleção Versão . Encontra-se na parte superior do índice desta página.

Para criar uma biblioteca estática UWP no Visual Studio

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

  2. Na parte superior da caixa de diálogo, defina Language como C++, Platform comoWindows e Project type como UWP.

  3. Na lista filtrada de tipos de projeto, escolha Biblioteca estática (Universal Windows - C++/CX) e escolha Avançar. Na página seguinte, dê um nome ao projeto e especifique o local do projeto, se desejado.

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

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

  1. Na barra de menus, escolha Arquivo>Novo>Projeto. Em Visual C++>Windows Universal, escolha Biblioteca estática (Universal 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ágina Propriedades> de ConfiguraçãoC/C++, defina Consumir Extensão do Tempo de Execução do Windows como Sim (/ZW).

Quando você compila uma nova biblioteca estática, se você fizer uma chamada para uma API do Win32 excluída para aplicativos UWP, o compilador gerará o erro C3861, "Identificador não encontrado". Para procurar um método alternativo com suporte para o Tempo de Execução do Windows, 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 cria e vincula, mas ocorre um erro quando você tenta verificar o aplicativo para a Microsoft Store. A lib estática deve ser compilada com as mesmas configurações do compilador que o projeto que a consome.

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

aviso LNK4264: arquivo de objeto de arquivamento compilado com /ZW em uma biblioteca estática; observe que, ao criar tipos do Tempo de Execução do Windows, não é recomendável vincular a uma biblioteca estática que contenha metadados do Tempo de Execução do Windows.

Você pode ignorar o aviso com segurança somente se a biblioteca estática não estiver produzindo componentes do Tempo de Execução do Windows que são 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 em tempo de execução. Por esse motivo, qualquer componente do Tempo de Execução do Windows destinado ao consumo por outros componentes ou aplicativos deve ser implementado em uma biblioteca de vínculo dinâmico (DLL).

Ver também

Roscagem e Marshaling