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:

  1. 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;
  2. 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 … :D

Aplicação CGI escrita com C++ e cgicc

Happy coding !

Dúvidas ? Comente !

Bookmarksbookmark bookmark bookmark bookmark bookmark bookmark

Popularity: 3%

4 Comments so far

  1. Willian Rocha on July 19th, 2009

    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

  2. admin on July 20th, 2009

    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

  3. Willian Rocha on July 20th, 2009

    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

  4. Marco on July 29th, 2009

    Olá, apenas ilustrando: a versão 3.2.8 do cgicc compilou sem erros (diversos warnnings) no VS2005.

Vale Presente