Documentação do Tdk

   Tutorial / Primeiros Passos
Esta etapa do tutorial tem como objetivo auxiliar na configuração de um ambiente Windows para desenvolvimento de aplicações que utilizem o framework TDK. Assumimos que você tem acesso a bibliotecas específicas que estão na rede local do TecGraf.

 
 Introdução 

 

O desenvolvimento do Tdk é feito utilizando um sistema de controle de versão, que tem a finalidade de controlar as diferentes versões – histórico e desenvolvimento – dos códigos-fontes e também de sua documentação.

Existem diversos sistemas de controle de versão. Nós utilizamos o Subversion (também conhecido por SVN) para armazenar o Tdk.

Para fazer download do Tdk é necessário ter um cliente do Subversion instalado em sua máquina e permissão de acesso ao servidor do SVN do Tdk. Para ter permissão de acesso ao servidor SVN do Tdk, você deve solicitar a criação de um usuário e senha para acesso ao Trac (ambiente colaborativo do TDK) e solicitar permissão de acesso ao SVN. Estas solicitações devem ser feitas através do e-mail tdk@tecgraf.puc-rio.br.

Neste tutorial estamos usando o cliente do Subversion chamado TortoiseSVN na versão v1.4.3.

O TDK é escrito na linguagem C++. Para o seu desenvolvimento, estamos usando neste tutorial o ambiente Microsoft Visual Studio .NET 2003.

 
1) Download do Tdk

O primeiro passo deste tutorial é fazer o download do TDK.

1.1) Primeiro escolha um diretório em sua máquina no qual serão armazenados os arquivos do repositório do TDK, por exemplo o diretório D:\users\seu_login\svn (posteriormente faremos referência ao diretório escolhido como SVN_ROOT) .

1.2) Utilizando um cliente de acesso a SVN conecte no servidor do SVN e execute um checkout do TDK. Se você tiver o TortoiseSVN instalado, este passo é feito abrindo o Windows Explorer para encontrar o diretório escolhido e clicando sobre o mesmo com o botão direito. Dentre as opções do menu, selecione SVN Checkout.



1.3) Informe a URL do repositório https://trac.inf.puc-rio.br/tecgis/tdk/HEAD e clique OK para prosseguir.



1.4) Será solicitado um nome de usuário e senha. Preencha os campos corretamente e confirme para que se inicie o processo de checkout. Como são muitos arquivos, este processo pode ser um pouco demorado.



2) Compilação das bibliotecas

Agora precisamos compilar alguns projetos antes de continuarmos. Considerando que SVN_ROOT é o diretório onde foi feito o checkout pelo SVN, os arquivos de solução que devem ser compilados são os seguintes:

SVN_ROOT\tdk\mak.vc71\tdkserver.sln
SVN_ROOT\iupvipe\mak.vc71\iupvipe.sln

Para cada um destes arquivos, faça o seguinte procedimento: encontre o arquivo utilizando o Windows Explorer e clique duas vezes sobre o mesmo. O Visual Studio .NET 2003 será iniciado, abrindo este arquivo de solução. Então acesse o menu Build -> Build Solution e aguarde a compilação das bibliotecas. A figura abaixo ilustra este processo.



3) Criando um novo projeto no Visual Studio .NET 2003

Agora que já foram geradas as bibliotecas que serão utilizadas, iremos criar uma aplicação no Visual Studio .NET 2003 que utilize o framework TDK.

3.1) Inicie a criação de um novo projeto utilizando o menu File -> New -> Project.

3.2) Na área Project Types, selecione Visual C++ Projects, e então Win32.

3.3) Na área Templates, selecione Win32 Console Project.

3.4) Dê um nome para o seu projeto, como por exemplo TDK_HelloWorld, e clique OK.

3.5) Informe em Location aonde você deseja criar o seu projeto (posteriormente faremos referência ao diretório escolhido como PRJ_DIR).



3.6) Caso apareça um Application Wizard, simplesmente clique Finish para concluir a criação do projeto. Serão criados alguns arquivos do projeto, entre eles o TDK_HelloWorld.cpp, que você editará daqui a pouco para fazer seu primeiro programa com o TDK.

 

3.7) Acesse as propriedades do projeto clicando com o botão direito em cima do nome do projeto TDK_HelloWorld na janela da direita Solution Explorer – TDK_HelloWorld. Cuidado neste passo porque se você for acessar as propriedades através do menu em Project/ Properties, o projeto (e não um arquivo) deve estar selecionado na janela Solution Explorer. Repare na figura acima que o arquivo TDK_HelloWorld.cpp está selecionado. Para que você consiga fazer este passo, você precisa selecionar o nome do projeto e não deste arquivo.

3.8) Selecione na subpasta C/C++ a opção Code Generation e mude o campo Runtime Library para Multi-threaded Debug (/MTd) como mostra a figura abaixo.



4) Linkando o projeto com as bibliotecas TDK

4.1) Na pasta Linker -> Input, escreva os nomes das bibliotecas que serão utilizadas, no item Additional Dependencies. As seguintes bibliotecas precisam ser referenciadas:

  • intrapc.lib
  • tdkpeer.lib
  • intrapc.lib
  • libpq.lib
  • iup.lib
  • iupcontrols.lib
  • tdkiup.lib
  • md5.lib
  • tdkcdgraphics.lib
  • tdkcontrol.lib
  • tdkcore.lib
  • tdkgps.lib
  • tdkgraphics.lib
  • tdkservices.lib
  • tdkutils.lib
  • terralib_ext.lib
  • libpq.lib
  • cd.lib
  • cdiup.lib
  • im.lib
  • im_process.lib
  • terralib.lib
  • shapelib.lib
  • tiff.lib
  • libjpeg.lib
  • cdgdiplus.lib
  • libmysql.lib
  • gdiplus.lib
  • wsock32.lib
  • comctl32.lib
  • odbc32.lib
  • odbccp32.lib
  • lti_dsdk_dll.lib
  • winmm.lib
  • cdpdflib.lib
  • pthreadVC2.lib

4.2) Na aba Linker -> Input, adicione LIBC.lib no item Ignore Specific Library.

4.3) Na aba Linker -> General, escreva os caminhos de onde estas bibliotecas estão, no item Additional Library Directories. Os diretórios a serem referenciados encontram-se a seguir. Cuidado porque o dir SVN_ROOT deve ser alterado para o seu caso!

  • SVN_ROOT\lib\mtdebug\vc71
  • SVN_ROOT\tdk\utils\pdflib\dll
  • SVN_ROOT\tdk\terralib\terralibw\PostgreSQL
  • SVN_ROOT\tdk\dependences\cd\lib.vc71
  • SVN_ROOT\tdk\dependences\im\lib.vc71
  • SVN_ROOT\tdk\terralib\terralibw\terralib\Debug
  • SVN_ROOT\tdk\terralib\terralibw\shapelib\Debug
  • SVN_ROOT\tdk\terralib\terralibw\tiff\Debug
  • SVN_ROOT\tdk\terralib\terralibw\libjpeg\Debug
  • SVN_ROOT\tdk\terralib\terralibw\zlib
  • SVN_ROOT\tdk\terralib\terralibw\DSDK\Debug
  • SVN_ROOT\tdk\terralib\terralibw\MySQL
  • SVN_ROOT\iupvipe\dependences\iup\lib.vc71
  • SVN_ROOT\tdk\dependences\pthread\dll.vc71

4.4) Na área C/C++ -> General no item Additional Include Directories, escreva os caminhos dos headers (arquivos .h) dos módulos que serão utilizados na aplicação.

  • SVN_ROOT\tdk\terralib\src\terralib\kernel
  • SVN_ROOT\tdk\src\peer\components\core
  • SVN_ROOT\tdk\src\peer\components\core\styles
  • SVN_ROOT\tdk\src\peer\components\control
  • SVN_ROOT\tdk\src\peer\components\control\events
  • SVN_ROOT\tdk\src\peer\components\control\tasks
  • SVN_ROOT\tdk\src\peer\components\control\interactors
  • SVN_ROOT\tdk\src\peer\components\control\displays
  • SVN_ROOT\tdk\src\peer\components\utils
  • SVN_ROOT\tdk\src\peer\components\utils\dbDrivers
  • SVN_ROOT\tdk\src\peer\components\utils\dbDrivers\adoDrivers
  • SVN_ROOT\tdk\src\peer\components
  • SVN_ROOT\tdk\src\peer\components\graphics
  • SVN_ROOT\tdk\src\peer\services
  • SVN_ROOT\iupvipe\src
  • SVN_ROOT\iupvipe\dependences\iup\include
  • SVN_ROOT\tdk\src\peer\components\graphics\CD
  • SVN_ROOT\tdk\dependences\cd\include
  • SVN_ROOT\tdk\src\peer\components\utils\dbDrivers
  • SVN_ROOT\tdk\src\peer\components\utils\dbDrivers\adoDrivers
  •  SVN_ROOT\tdk\src

4.5) Na área Build Events -> Post-Build Event no item Command Line, escreva os comandos abaixo para que as dll's necessárias para a execução da aplicação sejam copiadas.

  • copy SVN_ROOT\tdk\terralib\terralibw\zlib\zlib.dll "$(OutDir)"\zlib1.dll
  • copy SVN_ROOT\tdk\terralib\terralibw\DSDK\Debug\lti_dsdk_dll.dll "$(OutDir)"
  • copy SVN_ROOT\tdk\dependences\general\*.* "$(OutDir)"
5) Criando um Hello World

Após estabelecer os links com as bibliotecas do TDK, já é possível escrever um código C++ que utiliza funções do TDK para uma aplicação Hello World de teste.

5.1) Ao criar o seu projeto, foi criado automaticamente o arquivo TDK_HelloWorld.cpp. Edite o código fonte deste arquivo para deixá-lo da seguinte forma:

#include "stdafx.h"
#include "TdkIupPresentationUtils.h"
int _tmain(int argc, _TCHAR* argv[])
{
	try {
		TdkIupPresentationUtils::initIup();
		TdkIupPresentationUtils::showMessageBox("World","Hello");
		TdkIupPresentationUtils::closeIup();
	} catch ( TdkException& ex ) {
		fprintf(stderr, ex.trace() ); 
		exit(1);
	}
		return 0;
}
   Faça download deste exemplo: TDK_HelloWorld.cpp (1.0 Kb)



5.2) Execute então o processo de build no seu projeto, pelo menu Build -> Build Solution, e então execute seu projeto, usando o menu Debug -> Start Without Debugging.

5.3) Se o TDK estiver devidamente configurado, a aplicação Hello World será construída e iniciada corretamente, aparecendo na tela uma caixa de diálogo com um botão de confirmação.



 

         Topo ^