quinta-feira, 26 de novembro de 2015

Criando uma aplicação CLR/CLI no Visual Studio 2015

Aqueles que acompanham este blog já devem ter percebido que prefiro utilizar o Visual Studio para elaborar meus programas para Windows. Ali eu tenho usado mais o CLR/CLI, que é uma versão do C++ que se aproxima bastante do C#.
Usei por um bom tempo o Visual Studio 2010, e ali existem opções pré-definidas para se iniciar um projeto CLR/CLI que facilitam bastante a vida do programador. No entanto, descobri com uma certa surpresa que a versão 2015 já não possui estas opções, obrigando o programador a criar todo o projeto manualmente. E isto me levou a buscar como eu poderia fazer isto.
Já que esta é uma informação bem específica, e que alguém talvez queira encontrar, resolvi compartilhar aqui no blog. Espero facilitar a vida de alguém com isto. Vamos ao código?

Criando o projeto

Primeiro, vamos abrir o Visual Studio e selecionar o Menu FILE, New, Project.


A janela New Project vai abrir, e nela vamos selecionar Templates, Visual C++, CLR. Nesta opção, escolheremos CLR Empty Project. Então nas opções abaixo, vamos dar um nome para nosso projeto e escolher o diretório onde ele será criado (aqui em nosso exemplo, adotamos o nome Teste).


Clicando em OK, o Visual Studio vai criar seu projeto. No entanto, o projeto não possui nenhum arquivo ainda. Por isto, vamos criar o arquivo principal do projeto. Clicamos então com o botão direito em Source Files, depois selecionamos Add, New Item.


Escolhemos agora a opção C++ File. Para seguirmos uma padronização, vamos dar o mesmo nome do projeto para este arquivo: Teste.cpp.


Clicando em Add, nosso arquivo principal é criado. No entanto, ele ainda está vazio. Precisamos agora inserir o código necessário para a inicialização de nossa aplicação:

#include "MainForm.h"

using namespace System;
using namespace System::Windows::Forms;


[STAThread]
void Main(array<String^>^ args)
{
 Application::EnableVisualStyles();
 Application::SetCompatibleTextRenderingDefault(false);

 Teste::MainForm form;
 Application::Run(%form);
}

Este é um código bem simples. A primeira linha contém um include, que vai adicionar o código para o nosso Form (vamos adicioná-lo adiante). As duas próximas linhas dizem ao compilador quais namespaces vamos usar neste arquivo, no caso, System e System::Windows::Forms. Só precisamos destes dois para dar início à nossa aplicação.
A cláusula [STAThread] basicamente habilita a comunicação com componentes COM. Muitos componentes do sistema utilizam esta tecnologia, como por exemplo as caixas de diálogo.
Em seguida temos nossa tradicional função Main.
O método EnableVisualStyles habilita cores, fontes e outros elementos visuais que formam um tema do sistema operacional. Já o método SetCompatibleTextRenderingDefault define o valor padrão para a propriedade UseCompatibleTextRendering que existe em vários componentes, de forma global.
Logo em seguida, criamos uma instância de nosso form, como é definido pelo cabeçalho MainForm.h. Depois de defini-lo, inicializamos a aplicação, passando-o como argumento.
Feito tudo isto, vamos adicionar nosso Form. Clicando com o botão direito em cima do nome do projeto (Teste) na Solution Explorer, selecionamos Add, New Item.


Na janela Add New Item, vamos escolher UI, Windows Form. Para refletir o que fizemos no arquivo Teste.cpp, vamos chamar este arquivo de MainForm.h.


Com isto, o Visual Studio vai criar nosso Form. Mas espere, ainda não acabou! Temos ainda que fazer algumas últimas configurações no nosso projeto, para informar ao Visual Studio qual será o ponto de entrada de nosso projeto. Para isto, vamos clicar novamente no nome do projeto (Teste) na Solution Explorer, e escolher Properties (última opção). Ou então o menu PROJECT, Properties.
A primeira opção que devemos alterar é a opção Subsystem, que se encontra em Configuration Properties, Linker, System. Esta opção afeta o símbolo do ponto de entrada que é escolhido pelo Linker. Devemos defini-lo como Windows.


Agora vamos selecionar a aba Advanced. Aqui vamos alterar a opção Entry Point, definindo-a para Main, que é o nome da nossa função principal, definida no arquivo Teste.cpp.


Com isto, nosso programa está pronto para ser compilado!
Espero que este texto possa ajudar quem estiver com a mesma necessidade.

Nenhum comentário:

Postar um comentário

Você também poderá gostar de