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.
Um aplicativo de área de trabalho em C++ é um aplicativo nativo que pode acessar o conjunto completo de APIs do Windows e é executado em uma janela ou no console do sistema. As aplicações de ambiente de trabalho em C++ podem ser executadas no Windows XP através do Windows 11 (embora o Windows XP já não seja oficialmente suportado e existam muitas novas APIs do Windows desde então).
Qualquer aplicativo de área de trabalho em C++ pode usar classes e funções do C Runtime (CRT) e da Biblioteca Padrão, objetos COM e as funções públicas do Windows, que coletivamente são conhecidas como API do Windows. Para obter uma introdução aos aplicativos da área de trabalho do Windows em C++, consulte Introdução ao Win32 e C++.
Há várias categorias amplas de aplicativos do Windows que você pode criar com C++, descritas abaixo. Cada um tem seu próprio modelo de programação e conjunto de bibliotecas específicas do Windows. A biblioteca padrão C++ e bibliotecas C++ de terceiros podem ser usadas em qualquer uma delas.
Para obter documentação sobre a própria plataforma Windows, consulte a documentação do Windows.
Aplicações cliente nativas para computador de mesa
Uma aplicação cliente de desktop nativa, ou aplicação Win32, é uma aplicação de desktop do Windows escrita em C ou C++ que utiliza APIs nativas do Windows C ou APIs COM (Component Object Model), APIs CRT e da Biblioteca Padrão, e bibliotecas de terceiros. Um aplicativo Win32 que é executado em uma janela requer que o desenvolvedor manipule mensagens do Windows dentro de uma função de procedimento do Windows. Apesar do nome, um aplicativo Win32 pode ser compilado como um binário de 32 bits (x86) ou 64 bits (x64). No IDE do Visual Studio, os termos x86 e Win32 são sinônimos.
- Para começar a usar a programação tradicional do Windows C++, consulte Introdução ao Win32 e C++.
- Para obter um exemplo de um aplicativo de desktop C++ tradicional que usa gráficos sofisticados, consulte Hilo: Desenvolvendo aplicativos C++ para Windows.
Aplicativos de linha de comando (console)
Os aplicativos de console C++ são executados a partir da linha de comando em uma janela do console e podem exibir somente saída de texto.
- Para obter mais informações, consulte Criar uma calculadora de console em C++.
Aplicativos UWP
A Plataforma Universal do Windows (UWP) é a API moderna do Windows. Os aplicativos UWP são executados no Windows 11, Windows 10, XBox, Windows Phone, Surface Hub e outros dispositivos. Os aplicativos UWP usam XAML para a interface do usuário e são totalmente habilitados para toque. Um aplicativo de área de trabalho é distinto de um aplicativo da Plataforma Universal do Windows (UWP).
- Para obter mais informações sobre aplicativos de área de trabalho versus UWP, consulte Escolha sua tecnologia.
- Para obter mais informações sobre UWP, consulte O que é um aplicativo da Plataforma Universal do Windows (UWP) e Guia para aplicativos universais do Windows.
O suporte C++ original para UWP consistia em C++/CX, um dialeto de C++ com extensões de sintaxe, ou a WRL (Biblioteca do Tempo de Execução do Windows), que é baseada em C++ e COM padrão. C++/CX e WRL ainda são suportados, mas não recomendados para novos desenvolvimentos.
Para novos projetos, recomendamos C++/WinRT, que é totalmente baseado em C++ padrão e fornece desempenho mais rápido.
Um aplicativo ou componente C++/CLI usa extensões para sintaxe C++ (conforme permitido pelo C++ Standard) para habilitar a interação entre .NET e código C++ nativo. Um aplicativo C++/CLI pode ter partes que são executadas nativamente e partes que são executadas no .NET Framework com acesso à Biblioteca de Classes Base do .NET. C++/CLI é a opção preferida quando você tem código C++ nativo que precisa trabalhar com código escrito em C# ou Visual Basic. Destina-se ao uso em DLLs .NET em vez de no código da interface do usuário.
- Para obter mais informações, consulte Programação .NET com C++/CLI (Visual C++).
Ponte Desktop
No Windows 10 e posterior, você pode empacotar seu aplicativo de área de trabalho existente ou objeto COM como um aplicativo UWP. Ele pode usar recursos UWP, como toque ou chamar APIs do conjunto moderno de APIs do Windows. Você também pode adicionar um aplicativo UWP a uma solução de área de trabalho no Visual Studio, empacotá-los juntos em um único pacote e usar APIs do Windows para se comunicar entre eles.
O Visual Studio 2017 versão 15.4 e posterior permite que você crie um Projeto de Pacote de Aplicativo do Windows para simplificar muito o trabalho de empacotamento de seu aplicativo de área de trabalho existente. Algumas restrições se aplicam às chamadas de registro ou APIs que seu aplicativo de desktop pode usar. No entanto, em muitos casos, você pode criar caminhos de código alternativos para obter funcionalidade semelhante durante a execução em um pacote de aplicativo.
- Para obter mais informações, consulte Desktop Bridge.
C++ ou .NET?
Em geral, a programação .NET em C# é menos complexa, menos propensa a erros e tem uma API orientada a objeto mais moderna do que Win32 ou MFC. Na maioria dos casos, o seu desempenho é mais do que adequado.
O .NET apresenta o Windows Presentation Foundation (WPF) para gráficos avançados e você pode consumir o Win32 e a API moderna do Tempo de Execução do Windows. Como regra geral, recomendamos o uso de C++ para aplicativos de desktop quando você precisar:
- controle preciso sobre o uso da memória
- a máxima economia no consumo de energia
- uso da GPU para computação geral
- acesso ao DirectX
- uso intenso de bibliotecas C++ padrão
Também é possível combinar o poder e a eficiência do C++ com a programação .NET. Você pode criar uma interface de usuário em C# e usar C++/CLI para permitir que o aplicativo consuma bibliotecas C++ nativas.
- Para obter mais informações, consulte Programação .NET com C++/CLI.
Jogos
Os jogos DirectX podem ser executados no PC ou Xbox.
- Para obter mais informações, consulte Gráficos e jogos em DirectX.
Clientes de banco de dados do SQL Server
Para acessar bancos de dados do SQL Server a partir de código nativo, use ODBC ou OLE DB.
- Para obter mais informações, consulte SQL Server Native Client.
Drivers de dispositivos Windows
Os drivers são componentes de baixo nível que tornam os dados de dispositivos de hardware acessíveis a aplicativos e outros componentes do sistema operacional.
- Para obter mais informações, consulte Kit de driver do Windows (WDK).
Serviços do Windows
Um serviço do Windows é um programa que pode ser executado em segundo plano com pouca ou nenhuma interação do usuário. Esses programas são chamados daemons em sistemas UNIX.
- Para obter mais informações, consulte Services.
COM
O COM (Component Object Model) é uma especificação que permite que programas escritos em diferentes linguagens interoperem entre si.
Muitos componentes do Windows são implementados como objetos COM e seguem regras COM padrão para criação de objetos, descoberta de interface e destruição de objetos. Usar objetos COM de aplicativos de desktop C++ é relativamente simples, mas escrever seu próprio objeto COM é mais avançado.
A Ative Template Library (ATL) fornece macros e funções auxiliares que simplificam o desenvolvimento COM. Para obter mais informações, consulte Componentes da área de trabalho ATL COM.
MFC
Um aplicativo MFC é um aplicativo de área de trabalho do Windows que usa o Microsoft Foundation Classes para criar a interface do usuário. Um aplicativo MFC também pode usar componentes COM e APIs CRT e Standard Library.
MFC fornece uma fina camada orientada a objetos em C++ sobre o loop de mensagens de janelas e as APIs do Windows. MFC é a escolha padrão para aplicativos — especialmente aplicativos de tipo empresarial — que têm muitos controles de interface do usuário ou controles de usuário personalizados.
O MFC fornece classes auxiliares convenientes para gerenciamento de janelas, serialização, manipulação de texto, impressão e elementos modernos da interface do usuário, como a faixa de opções. Para ser eficaz com MFC, você deve estar familiarizado com Win32.
SDKs, bibliotecas e arquivos de cabeçalho
O Visual Studio inclui a CRT (C Runtime Library), a biblioteca padrão C++ e outras bibliotecas específicas da Microsoft. A maioria das pastas que contêm arquivos de cabeçalho para essas bibliotecas estão localizadas no diretório de instalação do Visual Studio na pasta \VC\ (por exemplo, C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.39.33519\include\
). Os arquivos de cabeçalho do Windows e CRT são encontrados na pasta de instalação do SDK do Windows (por exemplo, C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\ucrt\
)
O gerenciador de pacotes vcpkg permite instalar convenientemente centenas de bibliotecas de código aberto de terceiros para Windows. Para obter mais informações, consulte vcpkg.
As bibliotecas da Microsoft incluem:
Microsoft Foundation Classes (MFC): uma estrutura orientada a objetos para a criação de programas tradicionais do Windows, especialmente aplicativos corporativos, que possuem interfaces de usuário avançadas que apresentam botões, caixas de listagem, exibições em árvore e outros controles. Para obter mais informações, consulte Aplicativos de área de trabalho MFC.
Ative Template Library (ATL): Uma poderosa biblioteca auxiliar para criar componentes COM. Para obter mais informações, consulte ATL COM Desktop Components.
C++ AMP (C++ Accelerated Massive Parallelism): Uma biblioteca que permite o trabalho computacional geral de alto desempenho na GPU. Para obter mais informações, consulte C++ AMP (C++ Accelerated Massive Parallelism).
Concurrency Runtime: Uma biblioteca que simplifica o trabalho de programação paralela e assíncrona para dispositivos multicore e de muitos núcleos. Para obter mais informações, consulte Concurrency Runtime.
Muitos cenários de programação do Windows também exigem o SDK do Windows, que inclui os arquivos de cabeçalho que permitem o acesso aos componentes do sistema operacional Windows. Por padrão, o Visual Studio instala o SDK do Windows como um componente da carga de trabalho da área de trabalho C++, que permite o desenvolvimento de aplicativos universais do Windows. Para desenvolver aplicativos UWP, você precisa de uma versão do Windows 10 ou posterior do SDK do Windows.
- Para obter mais informações e um link para download, consulte Windows SDK.
- Para obter mais informações sobre os SDKs do Windows para versões anteriores do Windows, consulte o arquivo do SDK do Windows.
O local padrão para todas as versões do SDK do Windows que você instala é: Program Files (x86)\Windows Kits
.
Ferramentas de Desenvolvimento
O Visual Studio inclui um poderoso depurador para código nativo, ferramentas de análise estática, ferramentas de depuração de gráficos, um editor de código completo, suporte para testes de unidade e muitas outras ferramentas e utilitários.
- Para obter mais informações, consulte Introdução ao desenvolvimento com o Visual Studio e Visão geral do desenvolvimento em C++ no Visual Studio.
Nesta secção
Ligação | Descrição |
---|---|
Passo a passo: Criando aplicativos da área de trabalho do Windows (C++) | Crie um aplicativo de área de trabalho nativo do Windows. |
Como: Usar o SDK do Windows em um aplicativo da área de trabalho do Windows | Contém etapas para configurar seu projeto para criar usando o SDK do Windows. |
Passo a passo: Criar um programa C++ padrão | Crie um aplicativo de console do Windows. |
Passo a passo: Criar uma calculadora de console em C++ | Crie um aplicativo de console simples do Windows. Um aplicativo de console Win32 (ou Win64) não tem janela própria e nenhum loop de mensagem. Ele é executado na janela do console, e a entrada e a saída são tratadas através da linha de comando. |
Implantando aplicativos de desktop nativos | Implante aplicativos nativos no Windows. |
Passo a passo: Criando e usando uma biblioteca estática | Como criar um .lib arquivo binário. |
Assistente de Ambiente de Trabalho do Windows | Use o assistente para criar novos projetos do Windows. |
Biblioteca de modelos ativos (ATL) | Use a biblioteca ATL para criar componentes COM em C++. |
Classes compartilhadas ATL e MFC | Use classes como CString as que são compartilhadas em ATL e MFC. |
Classes de base da Microsoft (MFC) | Use MFC para criar aplicativos grandes ou pequenos do Windows com caixas de diálogo e controles |
Acesso aos dados | OLE DB e ODBC |
Texto e cadeias de caracteres | Vários tipos de cadeia de caracteres no Windows. |
Trabalhando com arquivos de recursos | Como adicionar imagens, ícones, tabelas de cadeia de caracteres e outros recursos a um aplicativo da área de trabalho. |
Recursos para criar um jogo usando DirectX (C++) | Links para conteúdo para criação de jogos em C++. |
Artigos Relacionados
Título | Descrição |
---|---|
Desenvolvimento Windows | Contém informações sobre a API do Windows e COM. (Algumas APIs do Windows e DLLs de terceiros são implementadas como objetos COM.) |
Hilo: Desenvolvendo aplicativos C++ para Windows 7 | Descreve como criar um aplicativo de área de trabalho rich client do Windows que usa animação do Windows e Direct2D para criar uma interface de usuário baseada em carrossel. Este tutorial não foi atualizado desde o Windows 7, mas ainda fornece uma introdução completa à programação do Win32. |
Desenvolvimento .NET com C++/CLI | Crie wrappers para bibliotecas C++ nativas que permitem a comunicação com aplicativos e componentes .NET. |
Extensões de componentes para .NET e UWP | Referência para elementos de sintaxe compartilhados por C++/CX e C++/CLI. |
Aplicativos universais do Windows (C++) | Escreva aplicativos UWP usando C++/CX ou WRL (Biblioteca de Modelos do Tempo de Execução do Windows). |
Atributos C++ para COM e .NET | Atributos não padrão para programação somente do Windows usando .NET ou COM. |