DICAS DE FUNCIONAMENTO DO xHARBOUR

Foto de Anderson

DICAS DE FUNCIONAMENTO DO xHARBOUR 

xHarbour

Estava faltando descomplicar...

 

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:

/EXCria o arquivo .BC destinado a constituir um EXE.
/ELXCria o arquivo .BC destinado a constituir uma LIB.
/FForç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.

Para criar os programas você pode usar o Notepad++ que é super leve e tem a função highlight para visualizar melhor o código. Você vai precisar importar a linguagem Harbour que disponibilizo abaixo para download porque o Notepad++ não tem ela nativa.

Depois disso, você tem que configurar o conjunto de caracteres que usamos em nossa língua portuguesa: 

Notepad++: Formatar > Conjunto de caracteres > Europa Ocidental > OEM850

Primeira coisa que você tm que saber é que todo programa xHarbour tem que ter um Function Main() para indicar onde começar. Main() é um nome reservado. Equivale ao já conhecido INIT FUNCTION ou INIT PROCEDURE, porém no Clipper isso não era obrigatório.

Vamos compilar o clássico "hello world" no código a seguir.

Abra o Notepad++, ajuste o conjunto de caracteres e cole o programa a seguir nele:

function main() // Linha obrigatória. Define as primeiras linhas a serem executadas.
? "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

O sistema já vai compilar certinho com os acentos na lingua portuguesa.

Veja o passo-a-passo a seguir:

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

HBMAKE OI.BC

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á geradoOI.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")

// 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:

Downloads: 

Total votes: 0