Funcionamento

Projeto Harbour

 Harbour Project

Estava faltando descomplicar...

 

DICAS DE FUNCIONAMENTO

Como criar um EXEcutável:

É obrigatório a existência de um FUNCTION MAIN() dentro do seu sistema, isso você já sabe, mas no xHarbour, mesmo que você esteje compilando um único PRG, será necessário começar com FUNCTION MAIN() também!

 

O programa HBMAKE é uma ferramenta que cria um arquivo com a extensão ".BC" que equivale aos arquivos "*.RMK" e "*.LNK", facilitando a sua vida. Os principais parâmetros são:

/EX  = Cria o arquivo .BC destinado a constituir um EXE.

/ELX = Cria o arquivo .BC destinado a constituir uma LIB.

/F   = Força a recompilação da lista de programas que compõem o sistema.

Se não for informado nenhum parâmetro, vai compilar só os programas listados no arquivo .BC que foram modificados desde a última compilação.

 

Vamos compilar o clássico "hello world". Em um editor de texto qualquer, crie o seguinte arquivo:

 

function main()
? "hello world"

 

Salve-o como "OI.prg".

 

Para criar o oi.exe você vai primeiro criar o arquivo da compilação, o oi.bc:

HBMAKE OI.BC /EX

 

Depois você vai compilar assim:

HBMAKE OI.BC

 

 

Veja o passo-a-passo a seguir:

 

Os comandos para criação de um executável são:

 

Para criar um arquivo de compilação de um EXE (aplicativo):

HBMAKE nome.bc /EX

 

...e para compilar o aplicativo:

HBMAKE nome.bc

Irá compilar somente os PRGs alterados desde a última compilação.

 

Para forçar a recompilação de todos os PRGs:

HBMAKE nome.bc /F

Este parâmetro /F também regera o arquivo HARBOUR.CFG, não há problema nisso.

 

Onde "nome.bc" é o nome do script que você vai criar, ponha o nome que quiser, mas deixe a extensão .BC. O arquivo .BC só precisa ser criado uma única vez, a não ser que você deseje incluir novos programas no seu sistema.

No primeiro passo, é criado um arquivo com o nome nome.bc (pode ser qualquer nome, mas a extensão é bc). Este arquivo é um tipo de mescla de RMK e LNK do Clipper. É um roteiro (ou script, como preferir) de compilação.

Nesta primeira chamada é aberta uma janela do DOS com algumas perguntas sobre qual o sistema operacional, compilador, LIB gráfica, RDDs etc.

 

Vamos demonstrar de forma ilustrada os passos básicos para a compilação de um programa comum (sem Libs gráficas ou RDDs) para ser executado na plataforma Windows e compilado usando o Borland C++ que você baixou deste site.

HBMAKE oi.bc /EX

A tela que se apresenta é a seguinte:

 

Basta você ir teclando <Enter> até "[X]Comprimir App"*, marque-o para produzir executáveis menores e até o "Nome Executável", onde você vai por o nome do arquivo .EXE que será gerado. Neste exemplo acima, será gerado OI.EXE.

*Para comprimir o executável, você precisará baixar o UPX.

Após por o Nome do Executável, abrirá outros campos como visto a seguir:

Vá teclando <Enter> até o "[X] Compila apenas o módulo /m", marque-o e continue teclando <Enter> até aparecer uma pequena janela com uma lista de todos os arquivos .PRG do diretório corrente, como na tela seguir:

 

Nesta janela que se abre, você vai selecionar, teclando com a barra de espaços do seu teclado, todos os arquivos .PRG que vão fazer parte do seu sistema e depois deverá teclar <Enter> para finalizar.

Esta janela irá fechar e aparecerá outras opções, mas vá teclando <Enter> até a pergunta "Compilar app?", no canto inferior esquerdo da tela, veja a tela seguinte:

 

Responda com "S" para compilar o seu sistema agora ou "N" para compilar depois com HBMAKE OI.BC no prompt do MS-DOS.

 

Voilà! Está pronto o seu roteiro (ou script, como preferir) para compilar o arquivo EXEcutável. Observe que este processo todo serve apenas para criar o arquivo com a extensão .BC, que nunca mais necessitará ser criado de novo ao menos que você queira incluir um novo arquivo .PRG no seu sistema posteriormente.

 

No segundo passo é feita a criação do executável.

HBMAKE oi.bc

ou

HBMAKE oi.bc /F

Caso seu programa não apresente erros, a tela que se apresenta é a seguinte:

Caso dê algum erro, abra o arquivo com a extensão .OUT ou .LOG para entender o que aconteceu.

 

Para criar uma LIB:

HBMAKE nomedalib.bc /ELX

HBMAKE nomedalib.bc

O programa da LIB deve começar com a criação de uma função qualquer, tipo FUNCTION TESTE(). Não ponha o nome de "MAIN" porque esta função FUNCTION MAIN() é reservada para chamar o programa principal do sistema, ou seja, o programa do sistema que executa primeiro, aquele que prepara o ambiente, a tela e o menu do sistema, por exemplo.

A primeira chamada de HBMAKE cria um arquivo com a extensão .BC, que já falamos anteriormente. Marque apenas a opção: [X] Compila apenas o módulo /m

A segunda chamada de HBMAKE cria a LIB propriamente dita.

Os problemas de programação só aparecem na segunda chamada e podem ser analisados abrindo o arquivo com a extensão .OUT ou .LOG.

 

Exemplo de primeiras linhas de um sistema em xHarbour:

*** SETs SET SCOREBOARD OFF SET DATE BRITISH SET MESSAGE TO 24 SET DELETED ON SET EPOCH TO 1980 SETMODE(25,80) SET OPTIMIZE ON      // otimização de filtros (SET FILTER TO) SETMOUSE(.t.)        // Mostra o cursor do mouse na tela SET EVENTMASK TO 255 // INKEY_ALL = MOUSE NOS GETs SET TIME FORMAT TO "hh:mm" SETCOLOR(cCOR) SET CONFIRM ON

*** DEFINIR IDIOMA PORTUGUÊS *** REQUEST HB_LANG_PT REQUEST HB_CODEPAGE_PT850 HB_LangSelect("PT") HB_SetCodePage("PT850")

#IFDEF __GTWVW__    wvw_setcodepage(,255) // acentos com a lib GTWVW. "__GTWVW__" precisa estar definido. #ENDIF

*** DEFINIR TIPO DE BANCO DE DADOS: DBFCDX Nativo *** REQUEST DBFCDX REQUEST DBFFPT ANNOUNCE FPTCDX RDDSETDEFAULT("DBFCDX") RDDREGISTER( "DBFCDX", 1 ) // RDT_FULL SET AUTOPEN OFF

 Veja mais sobre CDX.

Observe que o "modo de edição rápida" das propriedades da janela do MS-DOS tem que estar desativada para o mouse funcionar, tipo:

Comentários

Executável HBMake

Olá, onde eu encontro o executável do HBMake?

Na pasta C:\xHarbour\bin

Na pasta C:\xHarbour\bin
Anderson Cardoso Silva