Página 1 de 1
Compilar para C
Enviado: 04 Set 2009 19:52
por Hasse
Boa noite colegas.
Estou com um problema novo.
Baixei o xHarbour 1.2.2-6553 via CVS e compilei. Até aqui tudo bem.
Ao compilar um programa que use o MilliSec() o sistema informa um erro de conflito de versões do PCODE (9 para 10) no Cttimer.prg.
Eu imagino que devo recompilar este cttimer.prg. Já tentei compilar para cttimer.obj e copiá-lo para a pasta OBJ mas não resolveu. Então procurei como fazer isto para o cttimer.c mas não achei o caminho das pedras.
Uso o Hbmake para compilar.
Re: Compilar para C
Enviado: 05 Set 2009 00:46
por sygecom
Boa Noite Hasse,
Acabei de atualizar e compilar meu xHarbour do CVS e meu sistema usa essa função MilliSec() e não tive problema algum, tente antes de compilar o xHarbour dar um MAKE_B32 CLEAN, com seu sistema delete todos os .OBJ e recompile tudo, quem sabe ficou algum vestigio de outra versão.
Re: Compilar para C
Enviado: 05 Set 2009 12:19
por Hasse
OK.
Eu também já estava pensando nisso. Obrigado.
Re: Compilar para C
Enviado: 06 Set 2009 09:58
por Hasse
Realmente, Leonardo, o que você previu, acabou acontecendo.
Atualizei para a versão 6571, e tudo está funcionando perfeitamente.
Mas, agora, só como aprendizado: como se compila um prg para C ?
Re: Compilar para C
Enviado: 08 Set 2009 02:03
por sygecom
Existe duas maneiras para isso.
1ª- Seria você pegar todo o codigo C e colocar dentro de um .PRG e antes de iniciar o codigo C você coloca:
#pragma begindump
....codigo c
....codigo c
....codigo c
....codigo c
// e no final a seguinte linha:
#pragma enddump
2ª- Seria compilar o arquivo .C junto com seus arquivos .PRG usando o hbmake, basta colocar dentro da pasta junto com seus .PRG e escolher ele junto na lista de arquivos fontes nas configurações do hbmake.
Re: Compilar para C
Enviado: 08 Set 2009 18:43
por Hasse
Boa noite Leonardo.
A minha pergunta foi mal colocada. É o seguinte:
Tenho um "Teste.prg" e desejo transformá-lo em "Teste.C". Tem como fazer isto ?
Re: Compilar para C
Enviado: 08 Set 2009 18:58
por Maligno
Se a sua intenção é transformar seu PRG em C, saiba que o código em si não será convertido para a sintaxe C. O fonte C correspondente ao PRG apenas conterá um epilhamento de diversos opCodes utilizados pela máquina virtual do [x]Harbour. O fonte C da compilação [x]Harbour é apenas uma "ponte" do compilador XBase para o compilador C.
Re: Compilar para C
Enviado: 08 Set 2009 19:17
por Hasse
Que decepção...
Mas, de qualquer forma, esta é uma informação valiosa, Maligno. Obrigado.
Re: Compilar para C
Enviado: 09 Set 2009 11:37
por gvc
Só para ilustrar, coloque isto no seu código fonte [x]Harbour (PRG)
Qto a ver o código C, o xHarbour cria PCODE para compilar e executar.
Vale observar que de acordo com a versão do [x]Harbour é a versão do PCODE.
Me parece que a última é a versão PCODE 9.
Se vc usa o FWH, precisa tomar cuidado com a versão do [x]Harbour e do FWH.
Não sei se outras bibliotecas gráficas tb tem esse problema.
/*
TIRA_X() // DESABILITA O X da janela
*/
#pragma BEGINDUMP
#include "windows.h"
HB_FUNC ( TIRA_X ) // DESABILITA O X da janela
{
HMENU MenuH = GetSystemMenu(GetForegroundWindow(),FALSE);
EnableMenuItem(MenuH,SC_CLOSE,MF_GRAYED);
}
#pragma ENDDUMP
Re: Compilar para C
Enviado: 09 Set 2009 12:28
por sygecom
Hasse escreveu:
A minha pergunta foi mal colocada. É o seguinte:
Tenho um "Teste.prg" e desejo transformá-lo em "Teste.C". Tem como fazer isto ?
É Hasse como disse o Maligno, isso não tem como pegar, mas por outro lado, você pode compilar funções e arquivos .C junto com seu aplicativo e no caso do Harbour até mesmo .CPP(C/C++)
Alias, por que você quer o arquivo em .C se pode ter ele todo em .PRG e compilar no harbour com, MSVC, BCC,MINGW,GCC, INTEL C, e etc...
Re: Compilar para C
Enviado: 09 Set 2009 13:33
por Hasse
Boa tarde Leonardo.
Alias, por que você quer o arquivo em .C se pode ter ele todo em .PRG e compilar no harbour com, MSVC, BCC,MINGW,GCC, INTEL C, e etc...
Na realidade não preciso de qualquer arquivo *.C. Foi somente uma curiosidade no momento, e também para o meu aprendizado.