Compilando CGICC com Visual C++ 6.0
Dando continuidade aos posts sobre o projeto de como controlar um ambiente via internet, decidi ilustrar um pouco do que a biblioteca CGICC é capaz.
Um ponto importante para destacar é que essa biblioteca é mantida pelo pessoal da GNU.org, os mesmos que mantém uma série de bibliotecas para linux, inclusive o compilador de C e C++, ou seja, totalmente seguro de usar.
[O que é o CGICC]
CGICC, do inglês Common Gateway Interface for CC (C++), é uma biblioteca escrita totalmente em C++ ANSI e que habilita os programadores de C++ criar aplicativos CGI, ou em outras palavras, aplicativos que possam rodar via WEB.
Você não leu errado. É possível escrever aplicações web em C++ e isso não é novidade. Vários sites fazem uso disso pelo poder do C++.
[Portabilidade]
Atualmente a biblioteca está pronta para ser executada a partir de sistemas que possuam os seguintes compiladores:
- gcc a partir da versão 2.81;
- aCC da HP;
- Microsoft Visual C++ 6.0;
- C++ Builder 5.0 da Borland;
Essa série de compiladores cobre a maioria dos sistemas operacionais. Já escrevi aplicativos que rodaram em linux e windows, bastando recompilar a aplicação. Com os makefiles da vida, isso não é nenhum impeditivo.
[Compilando com Visual C++ 6.0]
O primeiro passo é baixar a aplicação diretamente pelo site do mantenedor. Pegue a versão mais recente pela url http://ftp.gnu.org/gnu/cgicc/ . No momento que escrevi esse post a versão mais atual era a 3.2.6.
Depois disso, descompacte o arquivo para uma pasta qualquer e abra o workspace (.dsw) que está dentro da pasta win. Lembrando que o arquivo está como .tar.gz; usei o winrar para descompactar.
Após aberto o workspace, aparecerão do lado esquerdo do Visual C++ os projetos carregados, na ordem:
- cgicc;
- cookie;
- dns;
- example;
- test;
- upload;
Clique no menu build e depois build cgicc.dll. No momento em que compilei me deparei com dois cenários:
- Faltava o include cgicc/Cgidefs.h e o erro era: cannot open include file: ‘cgicc/CgiDefs.h’. Basta abrir o diretório onde você descompactou os arquivos, abrir a pasta cgicc e renomear o arquivo CgiDefs.h.in para CgiDefs.h;
- Depois de mandar compilar novamente, recebi vários erros com as mensages “error C2039: ’<any cctype>’ : is not a member of ’std’” messages. Clique em cada erro e remova o std da frente. Ex: std::isspace(*data_iter) deve ficar ::isspace(*data_iter). Faça isso para todos os casos que aparecerem esse tipo de erro;
Pronto, depois disso tudo deve ter gerado o cgicc.dll. Compile os outros arquivos e jogue dentro da pasta cgi-bin do apache, juntamente com a dll gerada.
Chame o aplicativo via browser e depois é só colocar as idéias para rolar …

Happy coding !
Dúvidas ? Comente !
Popularity: 5%







TWITTER
Olá Robson, me explique uma coisa…
Existem servidores que hospedam aplicações feitas utilizando o cgicc. Essas aplicações rodam na mesma plataforma do Perl?
Desde já agradeço atenção.
Abraços
Dá pra rodar tanto em ambiente windows, quanto linux.
A diferença é que eles possuem o binário lá para que seu aplicativo CGI possam linkar dinamincamente. Tecnicamente não é a mesma plataforma do Perl, já que o perl é interpretado, enquanto uma aplicação na qual foi citada, é compilada – diga-se de passagem, um binário.
abs
Legal…
Mais uma perguntinha Robson…
Existe ou conhece algum projeto relacionado ao cgicc que utilize o padrão MVC? Essa foi uma pergunta feita a mim, onde a pessoa questionava a razão de se criar aplicações web utilizando tal ferramenta e linguagem, mais por questões de produtividade uma vez que tanto o código de apresentação quanto os códigos que definem as regras de negócio estarem todos embutidos, e ainda mais visto a quantidade de linguagens de programação que tornam o desenvolvimento web mais simples como PHP, JAVA e outros.
Resumindo… a pergunta é: Como profissional em C++, você defende o uso da linguagem C++ para desenvolvimento Web acreditando que a mesma possa ainda de alguma forma trazer vantagens e alta produtividade em relação as existentes? Se sim, poderia mostrar exemplos ou campos em que essa tecnologia é utilizada com sucesso. Espero não estar perdendo o foco do post, e desde já agradeço vossa atenção.
[]’s
Olá, apenas ilustrando: a versão 3.2.8 do cgicc compilou sem erros (diversos warnnings) no VS2005.