Porque gerar códigos nativos?
Irei mostrar 3 métodos para compilar seus programas em códigos nativos, utilizando os seguintes softwares:
1: Visual Studio
2: wxDevc++
3: C++ Builder
Ambos desenvolvem aplicativos em C++ e todos eles são capazes de gerar códigos nativos em assemble do seu executável.
O Visual Studio trabalha com base em .Net Framework, porem aplicativos desenvolvidos em C++, dependendo de sua finalidade, não necessita de .Net Framework, por isso você pode gerar códigos nativos e deixar seus aplicativos mais leve e rápido para serem executados.
Exemplos
Obs: se você ja sabe a diferença entre programas com código .Net Framework e códigos assemble, sugiro que pule esta parte de exemplos.
Para ficar mais fácil de entender vou dar um exemplo, há vários programas que "desmontam" seus arquivos executaveis ou dlls e mostram o código fonte, e programas com base em .Net o código é mantido intacto, o que deixa seu programa nada seguro, vou mostrar um exemplo do programa "Net Reflector" que faz esse processo inverso e mostra o código fonte de executáveis desenvolvidos em .Net.
Fiz um programa "Olá Mundo" em C++ com base em .Net e depois de pronto, descompilei com o programa Net Reflector e veja o resutlado:
O código está la, exatamente como foi programado, o que é uma grande desvantagem para programadores que desenvolvem grandes programas para o mercado, já que seu código fonte fica totalmente acessível a qualquer pessoa.
Agora veja a diferença entre um programa compilado em código nativo gerando um executável em assemble:
Esse é um dos motivos para você preferir compilar seus programas em códigos nativos ao invés de compilar com base em .Net, não estou dizendo que .Net é uma plataforma insegura ou ruim, até mesmo porque utilizando a plataforma .Net você consegue desenvolver grandes softwares, mas por outro lado este acaba sendo um ponto fraco da plataforma, claro que você pode utilizar programas para "ofuscar" o código fonte, mas não abordaremos neste tópico.
Como criar programas C++ em códigos nativos utilizando o Visual Studio?
Crie um novo projeto MFC
Clique em Next:
Pronto, você já pode desenvolver seus programas em C++ e ao compilar o executável, ele ira gerar códigos nativos em assemble.
O bom desta opção é que você pode utilizar recursos de arrastar e soltar botões na janela, não precisando programar onde vai ficar cada objeto.
Como criar programas C++ em códigos nativos utilizando o wxWidgets?
Na verdade, programas desenvolvidos no wxWidgets já são compilados em códigos nativos, e o bom é que você pode desenvolver um programa na mesma estrutura e com poucas alterações ou até mesmo nenhuma, você poderá compilar para Windows e Linux utilizando o mesmo código que irá funcionar sem problemas, claro que se você utilizar funções específicas do Windows, e utilizar no Linux, você terá que alterar estas funções de acordo com o sistema.
o wxWidgets é gratuito, e nesta versão que deixarei o link para download, ele esta integrado com o DevC++, criando o programa wxDevC++.
http://www.wxwidgets.org/downloads/
Não irei mostrar prints com configurações, pois o mesmo não possui nenhuma opção que caso não seja configurada corretamente impede que o executável seja compilado em código nativo.
Como criar programas C++ em códigos nativos utilizando o C++ Builder?
O C++ Builder também gera códigos nativos quando compilado, o que eu quero mostrar para vocês é como tirar a dependência das dlls e arquivos .bpl que o executável gera, caso não seja configurado corretamente.
Primeiro vamos remover a dependência dos arquivos .bpl "rtl170.bpl, rtl170.bpl e rtl170.bpl".
Crie um projeto normalmente, pode ser em VCL mesmo, depois clique com o botão direito em cima do projeto e escolha "Options":
Assim você remove a dependência dos arquivos .bpl que o programa gera quando é compilado, caso você não remova esta opção, quando o aplicativo for executado em outro computador que não tenha o C++ Builder instalado ira ocorrer o erro:
O programa não pode ser iniciado porque está faltando rtl170.bpl no
seu computador. Tente reinstalá-la para resolver esse problema.
Agora vamos remover a dependência das dlls "borlndmm.dll" e "cc32120mt.dll"
Também em options, procure por "C++ Linker" e desmarque a opção "Link with Dynamic RTL"
Faça o mesmo para o modo "Release", expanda a opção "Build Configurations" e clique duas vezes em cima de Release, a opção irá ficar em negrito, mostrando que está selecionada:
Assim você remove a dependência das dlls, e seu software pode ser distribuído normalmente, e quando for executado em outro computador, não irá ocorrer nenhum erro com falta de dll ou arquivo bpl.
Bonus
O C++ Builder vem com alguns skins disponíveis, o que deixa seus programas muito mais bonitos.
Para selecionar skins para seu programa, na mesma janela "Options", procure por "Application > Appearance"
Selecione um skin e clique em Preview para ver sua aparência, depois de selecionar seu skin clique em OK, quando seu programa for executado ele ira mostrar o skin que você selecionou:
O bom é que você pode desenvolver todo o software, e depois de pronto pode optar ou não por adicionar um skin ao seu software, o que não é a mesma facilidade no Visual Studio e em outros programas.
Créditos
Gostaria de deixar meus devidos créditos ao nosso amigo Fergo e TerraSkilll por ter me ajudado a resolver o problema de como gerar códigos nativos em C++ no VS e por terem me ajudado também a resolver os problemas com erros de .bpl e dlls no C++ Builder, muito obrigado.
Tutorial by rflfn
0 comentários:
Postar um comentário
Não use palavrões, não use letras MAIÚSCULAS, não poste spans ou material ofensivo, respeite a todos para ser respeitado.