Página 1 de 2

Harbour 32bits x 64bits

Enviado: 17 Dez 2014 19:03
por Hasse
Boa noite colegas.

Estou dando os primeiros passos para migrar do xHarbour para o Harbour (com mingw).
Eu baixei o "harbour-nightly-win.exe", que foi instalado na pasta C:\HB32

No meu NB de 32bits funcionou bem, mas no Desk_top de 64bits não.

O executável simplesmente aborta sem qualquer mensagem. Nem um CLEAR inicial é executado.

Certamente o motivo deve ser o fato de serem de 32bits e não 64bits.

Qual a versão que devo instalar para que funcione corretamente.

OUTRA PERGUNTA:
O executável compilado em 64bits roda em 32bits ?

Harbour 32bits x 64bits

Enviado: 17 Dez 2014 20:31
por rochinha
Amiguinho,

Este comportamento é no mínimo estranho já que aplicativos 32 bits rodam normalmente.

Harbour 32bits x 64bits

Enviado: 18 Dez 2014 02:05
por Jairo Maia
Olá Hasse,

Apenas acrescentando ao que o colega Rochicha já disse (ou seja, aplicativos em 32 bits rodam normalmente em OS 64 bits), a resposta a sua segunda pergunta que é sobre aplicativos compilados em 64 bits rodam em 32 bits, a resposta é NÃO. Aplicativos compilados em 64 bits não rodam em 32 bits.

Harbour 32bits x 64bits

Enviado: 18 Dez 2014 09:03
por Hasse
Bom dia.

Então está certo que tenho algum problema de configuração no meu Desktop.

Obrigado aos colegas Rochinha e Jairo.

Um Feliz Natal e Próspero ano de 2015, também estendido a todos os colegas deste fantástico Fórum.

Harbour 32bits x 64bits

Enviado: 18 Dez 2014 21:18
por Hasse
Boa noite colegas.

Problema encontrado.....

Acontece que o Harbour abre uma segunda janela console para rodar o aplicativo, e uma das mensagens, na abertura, usa a impressão de pequena mensagem com "?". Em seguida a janela é fechada tão rapidamente que não dá tempo de ver esta mensagem.

Há uma forma do aplicativo usar a mesma janela console ? (isto é, sem abrir aquela segunda janela console ?)

Harbour 32bits x 64bits

Enviado: 19 Dez 2014 00:30
por rochinha
Amiguinho,

Algumas vezes isso aconteceu comigo compilando programas em fivewin. Abria uma janela console, mas executava o aplicativo em Windows. Se eu fechasse esta tela console quebrava o aplicativo em Windows.

No meu caso, usando Borland C++ 5.5 era a falta ou sobra de um parâmetro na linkagem.

Harbour 32bits x 64bits

Enviado: 19 Dez 2014 01:31
por Itamar M. Lins Jr.
Tenta ai:
Colocar antes da função main.

Código: Selecionar todos

ANNOUNCE HB_GTSYS
REQUEST HB_GT_GUI_DEFAULT
E na linha de comando do hbmk2
-gtwin //se for win -gtwvt ou gtwvg ou -gtgui // (Hwgui/Minigui)
ou no arquivo .hbp colocar
{win}gt=gtgui
...
conforme o drive que usar.

Saudações,
Itamar M. Lins Jr.

Harbour 32bits x 64bits

Enviado: 19 Dez 2014 08:22
por Hasse
Bom dia colegas.

Especificamente neste caso, a execução do aplicativo é em modo console.

Fiz a inclusão das linhas sugeridas pelo colega Itamar, mas o executável passa a trabalhar de forma oculta. Não abre, nem outra janela e nem na mesma janela, e fica em Background, e nem aparece na Barra de Tarefas.

Abaixo as primeiras linhas do .hbp, na parte anterior ao início da declaração dos prg's:
-oFio402x
-inc
-compr=yes
-quiet
-lxhb
-lhbwin
-lhbct
-gui
Já tentei tirar a última linha acima, mas também não funciona.



Também estou tentando encontrar a forma correta de ter uma lista de erros gravada em arquivo LOG, quando há, mas também sem sucesso. Usei as linhas abaixo no .hbp, mas nada acontece:
-echo=_ErrorLog.txt
-exitstr

Harbour 32bits x 64bits

Enviado: 19 Dez 2014 10:36
por Jairo Maia
Olá Hasse,

Em seu arquivo .Hbp, acrescente o parâmetro -gui

E para que não seja aberta a janela extra, você não pode usar arquivo .Bat para abrir o aplicativo. O ícone do windows deve apontar diretamente para o executável.

Se este aplicativo estiver sendo aberto por outro aplicativo Harbour, use:

Código: Selecionar todos

Hb_OpenProcess( "C:\Caminho\Nome_do_Aplicativo.exe" )

Harbour 32bits x 64bits

Enviado: 19 Dez 2014 10:45
por Itamar M. Lins Jr.
Especificamente neste caso, a execução do aplicativo é em modo console.
Então não é -gui
Use -gtwin
Que é o padrão p/ console.

Saudações,
Itamar M. Lins Jr.

Harbour 32bits x 64bits

Enviado: 19 Dez 2014 10:48
por Itamar M. Lins Jr.
E antes da função main
Remove a REQUEST HB_GT_GUI_DEFAULT -> só p/ Mingui,HBQT,Hwgui...

Saudações,
Itamar M. Lins Jr.

Harbour 32bits x 64bits

Enviado: 19 Dez 2014 15:47
por Hasse
Boa tarde

Janela Console: Perfeito. Funcionando como planejado.

Arquivo de erro de compilação: Como mencionado acima, ainda não consegui gravar um arquivo de saída para os erros de compilação. Usei as linhas abaixo no .hbp
-echo=_ErrorLog.txt
-exitstr
Mas não funciona. Como se faz isto ?

Harbour 32bits x 64bits

Enviado: 19 Dez 2014 20:05
por Itamar M. Lins Jr.
Ola!
Digita ai!

Código: Selecionar todos

\>hbmk2 seuprojeto.hbp -trace -info 1> hbcomplog.txt 2>&1 
Se já tem -trace e -info no .hbp não precisa colocar na linha

Saudações,
Itamar M. Lins Jr.

Harbour 32bits x 64bits

Enviado: 19 Dez 2014 21:30
por Hasse
Boa noite.

A linha de comando no ambiente console funciona, mas o seu comportamento é muito estranho.

1)-Usando a Linha de Comando:
-É necessário rodar a Linha de Comando antes de cada compilação, caso contrário a arquivo _FioLog.txt não é atualizado.

2)-Incluindo -trace e -info no arquivo .hbp:
-Só atualiza o arquivo _FioLog.txt caso a Linha de Compilação seja: hbmk2 fio > _FioLog.txt

3)-Arquivo _FioLog.txt:
As informações são dispersas.
Depois de compilado, intruduzi uma função inexistente, dididi(), em Fio402.prg e compilei novamente. O arquivo _FioLog.txt não reportou o erro, mas ele foi reportado no console. Vejam os arquivos do Anexo: _FioLog.txt e _MonitLog.txt que é a cópia do monitor. Mesmo usando -rebuild o resultado é o mesmo.

4)-Também não informa a linha do prg onde está o erro. Isto é normal ?

Harbour 32bits x 64bits

Enviado: 21 Dez 2014 11:31
por JoséQuintas
Reparei na sua assinatura:
Harbour 3.3.1 minigui

Se está usando Harbour "não padrão", a solução padrão pode não resolver.

No Harbour padrão, seja 3.2 ou 3.4, basta compilar padrão.
hbmk2 arquivo.prg

Pra mim tá parecendo que está misturando GUI e console, por isso não vê mensagens de erro, e vê janela duplicada.
Mas não me pergunte sobre ajutes de configuração em minigui ou hbide.