Compilar com Harbour

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Compilar com Harbour

Mensagem por sygecom »

Olá Hasse,
Para lista as funções de uma LIB pode usar o programinha em anexo.

Sobre o seu problema de compilação no seu Note, primeiro vou lhe fazer uma pergunta fundamental que cometi um erro aqui, que foi apenas copiar a pasta inteira de onde estava instalado o MSVC e larguei no mesmo local em outro micro, usei os mesmos PATH e etc.. e não compilou, acontece que na instalação do MSVC ele distribui LIB e DLL para tudo que é lado inclusive em C:\WINDOWS e C:\WINDOWS\SYSTEN32 que infelizmente é necessário para compilar aplicativos por menor que eles sejam. Então se esse é o caso, já comece fazendo a instalação completo do MSVC no outro micro.

Outra coisa é o que você mesmo comentou do longo PATH para poder ser achado pelo Harbour, então eu lhe recomendaria quando tiver instalando o MSVC indique um caminho bem curto, eu por exemplo uso D:\DEVEL\MSVC\ e na hora de instalar não instalo todos os pacote do MSVC apenas o C++ que é necessário para o Harbour e xHarbour.
Anexos
Lista_funcoes_Lib.zip
(468.11 KiB) Baixado 336 vezes
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Hasse
Usuário Nível 4
Usuário Nível 4
Mensagens: 820
Registrado em: 19 Out 2004 10:30
Localização: Jaraguá do Sul - SC

Re: Compilar com Harbour

Mensagem por Hasse »

Bom dia Leonardo.

Realmente, como você falou, eu também cometi este mesmo erro, no início.

Mas, desconfiado, no mesmo dia, instalei o MSVC de modo tradicional, mas mesmo assim, não funciona.

Vou, hoje mesmo, testar a tua sugestão de instalar o mesmo direto no raiz, exatamente como você fez.

Quanto à lista de funções em lib's será de uma enorme valia.

Obrigado.
Editado pela última vez por Hasse em 20 Set 2009 10:31, em um total de 1 vez.
Hasse
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
Hasse
Usuário Nível 4
Usuário Nível 4
Mensagens: 820
Registrado em: 19 Out 2004 10:30
Localização: Jaraguá do Sul - SC

Re: Compilar com Harbour

Mensagem por Hasse »

Boa noite Leonardo.

Passei o dia procurando o Microsoft Visual Studio que permita a instalação só do C++ e não encotrei.
São muitas opções que a gente se perde...
De onde posso baixar ? Onde você conseguiu ?
Hasse
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Compilar com Harbour

Mensagem por sygecom »

Boa Noite Hasse,
O Instalador é o mesmo que você deve está usando, é na hora de instalar que tem opção de instalar customizado escolhendo apenas o C++
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Hasse
Usuário Nível 4
Usuário Nível 4
Mensagens: 820
Registrado em: 19 Out 2004 10:30
Localização: Jaraguá do Sul - SC

Re: Compilar com Harbour

Mensagem por Hasse »

As versões que eu havia testado até aqui, nenhuma permitia optar por algum tipo especial de instalação. Já partia direto para a instalação.

Neste momento estou instalando o "Microsoft C++ 2008 Express Edition", que me deu a opção de não instalar o MSQL server, mas está instalando:
1-Visual C++ Runtime Pre-requisites;
2-SDK for Visual Studio 2008 headers;
3-SDK for .NET framework - eun;
4-SDK for Visual Studio 2008 Tools for Win32;
5-MIcrosift Visual C++ 2008 Express Edition with SP1;
6-Shared Management Objects.

Espero que seja esta...., pois já instalei e desinstalei uma 5 ou 6 vezes.
Hasse
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
Hasse
Usuário Nível 4
Usuário Nível 4
Mensagens: 820
Registrado em: 19 Out 2004 10:30
Localização: Jaraguá do Sul - SC

Re: Compilar com Harbour

Mensagem por Hasse »

Terminei a instalação e reiniciei o computador.
Ao compilar.... Recebo exatamente a mesma mensagem de erro... :%

O meu Fio.hbm está assim:

Código: Selecionar todos

-oFio400h.exe
-inc
-LC:\Harbour_vc\lib\win\msvc
-lHBwin
-lHBct
Fio400.prg
...
Todos os prg's
...
O comando de compilação abaixo:

Código: Selecionar todos

HBMK2 Fio.hbm > FioLog.txt -rebuild
Usei o -rebuild para ter certeza de que todos os prg's e lib's foram recompiladas.

Apesar de ter usado na linha de comando DOS a sintaxe > FioLog.txt, a tela do DOS reporta o erro abaixo (só a parte final do erro):

Código: Selecionar todos

I_NpVenc.obj .hbmk\win\msvc\I_Num80.obj .hbmk\win\msvc\I_Num132.obj .hbmk\win\ms
vc\I_Outr.obj .hbmk\win\msvc\I_Pend.obj .hbmk\win\msvc\I_PendBk.obj .hbmk\win\ms
vc\I_Rima.obj .hbmk\win\msvc\I_Rimc.obj .hbmk\win\msvc\I_Soma.obj .hbmk\win\msvc
\I_Tk_Lst.obj .hbmk\win\msvc\M_Agru.obj .hbmk\win\msvc\M_CadGer.obj .hbmk\win\ms
vc\M_CodPrp.obj .hbmk\win\msvc\M_Elim.obj .hbmk\win\msvc\M_FimMes.obj .hbmk\win\
msvc\M_IndEst.obj .hbmk\win\msvc\M_Indice.obj .hbmk\win\msvc\M_IndOrd.obj .hbmk\
win\msvc\M_Mod.obj .hbmk\win\msvc\M_Movim.obj .hbmk\win\msvc\M_NovoMo.obj .hbmk\
win\msvc\M_OpenEs.obj .hbmk\win\msvc\M_OpnArq.obj .hbmk\win\msvc\M_TecMov.obj .h
bmk\win\msvc\M_VerMov.obj .hbmk\win\msvc\Man_NfBk.obj .hbmk\win\msvc\Manu_alu.ob
j .hbmk\win\msvc\Manu_apg.obj .hbmk\win\msvc\Manu_bax.obj .hbmk\win\msvc\Manu_ca
d.obj .hbmk\win\msvc\Manu_cdg.obj .hbmk\win\msvc\Manu_com.obj .hbmk\win\msvc\Man
u_est.obj .hbmk\win\msvc\Manu_esu.obj .hbmk\win\msvc\Manu_esv.obj .hbmk\win\msvc
\Manu_esx.obj .hbmk\win\msvc\Manu_fat.obj .hbmk\win\msvc\Manu_for.obj .hbmk\win\
msvc\Manu_grl.obj .hbmk\win\msvc\Manu_maq.obj .hbmk\win\msvc\Manu_nf.obj .hbmk\w
in\msvc\Manu_nfe.obj .hbmk\win\msvc\Manu_np.obj .hbmk\win\msvc\Manu_tk.obj .hbmk
\win\msvc\MenuFio.obj -libpath:C:\Harbour\lib\win\msvc  -subsystem:console HBWin
.lib HBct.lib hbextern.lib hbdebug.lib hbvm.lib hbrtl.lib hblang.lib hbcpage.lib
 gtcgi.lib gtpca.lib gtstd.lib gtwin.lib gtwvt.lib gtgui.lib hbrdd.lib hbuddall.
lib hbusrrdd.lib rddntx.lib rddcdx.lib rddnsx.lib rddfpt.lib hbrdd.lib hbhsx.lib
 hbsix.lib hbmacro.lib hbcplr.lib hbpp.lib hbcommon.lib hbpcre.lib hbzlib.lib ke
rnel32.lib user32.lib gdi32.lib advapi32.lib ws2_32.lib winspool.lib comctl32.li
b comdlg32.lib shell32.lib uuid.lib ole32.lib oleaut32.lib mpr.lib winmm.lib map
i32.lib imm32.lib msimg32.lib wininet.lib
No Anexo segue o log de erro completo... Observar que é em tempo de linkagem que está o problema...
Anexos
FioLog.zip
(6.3 KiB) Baixado 207 vezes
Hasse
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7929
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Re: Compilar com Harbour

Mensagem por Itamar M. Lins Jr. »

Código: Selecionar todos

-LC:\Harbour_vc\lib\win\msvc
Essa linha no seu escript para que serve ?
Veja que estás mandando linkar todas as libs do diretório. Inclusive as MT e para Windows CE.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Hasse
Usuário Nível 4
Usuário Nível 4
Mensagens: 820
Registrado em: 19 Out 2004 10:30
Localização: Jaraguá do Sul - SC

Re: Compilar com Harbour

Mensagem por Hasse »

Bom dia Itamar.

Código: Selecionar todos

#-LC:\Harbour_vc\lib\win\msvc
Já havia desabilitado a linha, mas não houve qualquer alteração no resultado final.

Copiei esta instrução do texto abaixo (só parte):

Código: Selecionar todos

Harbour Make (hbmk2) 2.0.0beta2 (Rev. 12407)
Copyright (c) 1999-2009, Viktor Szakats
http://www.harbour-project.org/
Translation (pt-BR): Vailton Renato, (vailtom@gmail.com)

Sintaxe:

  hbmk2 [opções] [<script[s]>] <src[s][.prg|.c|.obj|.o|.rc|.res|.po|.pot|.hbl]>

Opções
  -o<outname>        nome de arquivo de saída
  -l<libname>        linkar com a biblioteca <libname>. <libname> deve omitir    
                     path, extensão e o prefixo 'lib' (a menos que faça parte do 
                     nome-de-arquivo).                                           
  -L<libpath>        path adicional para pesquisar por bibliotecas              
...
... 
Onde afirma que é um Path para pesquisa e não de inclusão.
Hasse
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7929
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Re: Compilar com Harbour

Mensagem por Itamar M. Lins Jr. »

Provavelmente, suas variáveis estão erradas e/ou o hbmk2 esta pegando outras libs porque ele é recursivo.

Eu não tenho nada do BCC por exemplo setado.
Realmente eu não sei porque voces se batem tanto porque é só seguir o arquivo install do harbour não ten segredo nenhum.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Hasse
Usuário Nível 4
Usuário Nível 4
Mensagens: 820
Registrado em: 19 Out 2004 10:30
Localização: Jaraguá do Sul - SC

Re: Compilar com Harbour

Mensagem por Hasse »

Boa tarde Itamar.

Realmente, como já havia comentado acima, no DeskTop foi tranquila a instalação, mas no meu Notebook a "coisa tá pegando". E feio...

Até já experimentei copiar todos os *.bat que estabelem os path's, de um computador para o outro, e também continua no mesmo.

O Windows XP é o mesmo. A mesma pessoa que instalou o citado no meu Desktop, também instalou no Notebook. Mas há alguma diferença de configuração, pois no Desktop posso usar o path no formato tradicional, como:

Código: Selecionar todos

C:\Arquivos de programas\Microsoft Visual Studio 9.0\.... etc.
Mas, no Notebook preciso usar como abaixo, pois do contrário não é reconhecido:

Código: Selecionar todos

C:\Arquiv~1\Micros~4\..... etc.
Da última vez instalei o Visual Studio conforme sugestão do Leonardo, justamente para evitar o problema acima, em:

Código: Selecionar todos

C:\MSVC\... etc.
Mas eu não desisto fácil. Vou procurar o erro até encontrar.
Hasse
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7929
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Re: Compilar com Harbour

Mensagem por Itamar M. Lins Jr. »

Ola!
Meu note é um Acer Aspire 3000. Podemos dizer antigo.
E funciona sem problema nenhum.
Mande as variáveis de ambiente. As minhas são essas.

Código: Selecionar todos

ALLUSERSPROFILE=C:\Documents and Settings\All Users
APPDATA=C:\Documents and Settings\Itamar\Dados de aplicativos
CLIPPER=F200
CommonProgramFiles=C:\Arquivos de programas\Arquivos comuns
COMPUTERNAME=TRABALHO
ComSpec=C:\WINDOWS\system32\cmd.exe
FP_NO_HOST_CHECK=NO
HB_COMPILER=msvc
HB_DIR_BLAT=G:\blat\blat262
HB_DIR_GD=G:\GD
HB_DIR_NSIS=C:\Arquivos de programas\NSIS
HB_INC_BLAT=G:\BLAT\BLAT262\FULL\SOURCE
HB_INC_GD=G:\GD\INCLUDE
HB_INSTALL_PREFIX=D:\DEV\HARBOUR
HB_PATH=D:\DEV\HARBOUR
HOMEDRIVE=C:
HOMEPATH=\Documents and Settings\Itamar
INCLUDE=C:\Arquivos de Programas\Microsoft Visual Studio 9.0\VC\include;C:\Arquivos de Programas\Microsoft SDKs\windows\v6.0A\include;D:\DEV\HARBOUR\INCLUDE;D:\HWGUI\INCLUDE;D:\GD\INCLUDE;G:\LETODB\INCLUDE
LIB=C:\Arquivos de Programas\Microsoft Visual Studio 9.0\VC\lib;C:\Arquivos de Programas\Microsoft SDKs\windows\v6.0A\lib;D:\HWGUI\LIB;D:\DEV\HARBOUR\LIB;G:\LETODB\LIB;
LOGONSERVER=\\TRABALHO
MAQ=FISCAL
NUMBER_OF_PROCESSORS=1
OS=Windows_NT
Path=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Arquivos de programas\Microsoft Visual Studio 9.0\VC\bin;D:\DEV\HARBOUR\BIN;C:\MINGW\BIN;C:\GnuWin32\BIN;C:\UPX;C:\Arquivos de programas\Arquivos comuns\Adobe\AGL;C:\Arquivos de programas\Microsoft SQL Server\100\Tools\Binn\;C:\Arquivos de programas\Microsoft SQL Server\100\DTS\Binn\;C:\Arquivos de Programas\Microsoft SDKs\Windows\v6.0A\bin\;;C:\ARQUIV~1\ARQUIV~1\MUVEET~1\030625
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
PROCESSOR_ARCHITECTURE=x86
PROCESSOR_IDENTIFIER=x86 Family 15 Model 44 Stepping 2, AuthenticAMD
PROCESSOR_LEVEL=15
PROCESSOR_REVISION=2c02
ProgramFiles=C:\Arquivos de programas
PROMPT=$P$G
SESSIONNAME=Console
SystemDrive=C:
SystemRoot=C:\WINDOWS
TCX=ILHEUS INFORMATICA
TEMP=C:\DOCUME~1\Itamar\CONFIG~1\Temp
TMP=C:\DOCUME~1\Itamar\CONFIG~1\Temp
USERDOMAIN=TRABALHO
USERNAME=Itamar
USERPROFILE=C:\Documents and Settings\Itamar
VS90COMNTOOLS=C:\Arquivos de programas\Microsoft Visual Studio 9.0\Common7\Tools\
windir=C:\WINDOWS
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Hasse
Usuário Nível 4
Usuário Nível 4
Mensagens: 820
Registrado em: 19 Out 2004 10:30
Localização: Jaraguá do Sul - SC

Re: Compilar com Harbour

Mensagem por Hasse »

OK Itamar.

Vou implantar e adaptar estas variáveis de ambiente no meu NoteBook.

Além disso, descobri que a função:
MultiByteToWideChar@24 pertence ao arquivo Kernel32.dll
SysAllocStringLen@8 pertence ao arquivo Oleaut32.dll

O Path no NoteBook contém o caminho para a pasta System32, e Kernel32.dll e Oleaut32.dll estão lá. O que está acontecendo ?

Agora preciso saber se estou certo no meu pensamento, analisando as linhas abaixo, e que são só as primeiras de muitas, mas todas com a mesma característica:

Código: Selecionar todos

LIBCMT.lib(a_str.obj) : error LNK2001: unresolved external symbol __imp__MultiByteToWideChar@24
HBWin.lib(olecore.obj) : error LNK2019: unresolved external symbol __imp__SysAllocStringLen@8 referenced in function "wchar_t * __cdecl hb_oleItemToString(void *)" (?hb_oleItemToString@@YAPA_WPAX@Z)
A LibCmt.lib está apontando para __imp__MultiByteToWideChar@24 e não encontra, certo ?

Neste caso o Kernel32.dll estaria corrompido ? Desatualizado ? Não, desatualizado não pode ser pois a versão do NoteBook é mais recente.

Tanto o Kernel32.dll do Desktop quanto do Notebook foram criados na mesma data mas o do Notebook foi atualizado em data masi recente, e é um pouco maior.

Estas informações sugerem algo ?
Hasse
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Compilar com Harbour

Mensagem por sygecom »

Olá Hasse,
Esse erro está muito estranho, acredito que não seja o problema de DLL do windows, deve ser alguma coisa na instalação do MSVC ou nos path do harbour na hora de compilar, tente apagar tudo e baixar do ZERO, sem pegar pasta de outro micro ou algo assim.
O fato de está em um Note book acredito que não deve fazer diferença alguma para compilação se for o mesmo windows que usou na outra instalação.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Hasse
Usuário Nível 4
Usuário Nível 4
Mensagens: 820
Registrado em: 19 Out 2004 10:30
Localização: Jaraguá do Sul - SC

Re: Compilar com Harbour

Mensagem por Hasse »

Bom dia Leonardo.

Já fiz a reinstalação do zero por 3 vezes. Reinstalei o Harbour e o MSVC. Nas 2 últimas, sem copiar nada do DeskTop.

O MSVC instalado direto na raiz, conforme tua sugestão Leonardo ( C:\MSVC\VC.... ).

Já comparei o set das variáveis de ambiente sugerido pelo amigo Itamar. Claro, havia diferenças, mas somente aquelas relativas ao tipo de instalação e de softwares particulares, que eu não uso, como o SQL e .NET. Aquelas relativas ao Harbour estavam todas lá.

Só não reinstalei o próprio Windows, ainda...

Já pensei em atacar o problema pelo outro lado. Ir tirando os path's no meu Desktop até que este tipo de erro apareça, e quem sabe, dai tirar conclusões. O que vocês pensam disto ? Vale a pena o trabalho ? Pode ajudar ?
Hasse
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Re: Compilar com Harbour

Mensagem por asimoes »

Pessoal, Bom dia.

Continuo com meus entraves e receios quanto ao harbour.

Estou acostumado com xharbour, hbmake e todas aquelas bibliotecas, minigui hwgui e também no modo console.

Com o harbour já foram 3 tentativas e 3 desistências, mas como eu sou teimoso quero pelo menos gerar uma aplicação gráfica, ufa! já consegui pelo menos a console, me baseando por aqui pelo tópico. Mas eu quero também gerar uma aplicação gráfica usando a hwgui na qual estou investindo tempo para transformar alguns pequenos programas em clipper.

Eu fiz um programinha bobo de alarme que usa funções da hwgui e quando tudo parecia ir bem, deu erro na linkedição com relação a hwgui uma dependencia que não lembro agora o que foi, desculpem não ter anotado.

Algumas perguntas:

1 - Qual pasta depois que eu baixo o harbour via svn tenho que copiar para c:\harbour ?
2 - Estou baixando a hwgui via cvs, depois que eu baixo é só rodar o make_b32 para gerar as libs? tem que alterar alguma coisa para funcionar com o harbour?
3 - Alguém poderia por gentileza me informar no código abaixo, o que devo modificar para gerar a aplicativo:

Código: Selecionar todos


#include "windows.ch"
#include "guilib.ch"
#include "Inkey.ch"
#include "hwgui.ch"
#include "common.ch"
#include "wingdi.ch"
#include "guilib.ch"

FUNCTION Main()
LOCAL   oTrayMenu, oIcone := HIcon() :AddResource("ICON_CLOCK")
LOCAL   oMainWindow, oTimer
PRIVATE oRelogio:= HIcon() :AddResource("ICON_CLOCK")
PRIVATE oIcon   := HIcon() :AddResource("ICON_CLOCK")
PRIVATE oOk     := HIcon() :AddResource("ICON_OK")
PRIVATE oCanc   := HIcon() :AddResource("ICON_CANC")
PRIVATE oDlgHabla:= Nil

PRIVATE oFont

   SET EXCLUSIVE OFF
   REQUEST HB_LANG_PT
   REQUEST HB_CODEPAGE_PT850
   REQUEST DBFCDX
   HB_LANGSELECT("PT")
   HB_SETCODEPAGE( "PT850" )
   /* A estrutura do dbf alarme.dbf é a seguinte:
       Campo Tipo Tam
       Seg       C      6
       Ter       C      6
       Qua      C       6
       Qui      C       6
      Sex      C       6
       ... Incluir o sabado e domingo para quem trabalha neste dias.

   Estrutura do meu arquivo alarme.rc
   LANGUAGE LANG_PORTUGUESE,SUBLANG_PORTUGUESE_BRAZILIAN
   APPLICATION_ICO ICON "IMG\CLOCK.ICO"
   1   24               "IMG\WindowsXP.Manifest"
   ICON_CLOCK    ICON    "IMG\CLOCK_128_HOT.ICO"
   ICON_OK       ICON    "IMG\OK001.ICO"
   ICON_CANC     ICON    "IMG\CANC001.ICO"
   ICON_CLOCK128 ICON    "IMG\CLOCK_128.ICO"
   */

   DBUSEAREA(.T.,"DBFCDX","ALARME","ALARME",.T.)

   Informa_Saida()

   IF ( hWnd := Hwg_FindWindow( oMainWindow,"Atualizador de Tempo" ) ) != 0
      Hwg_SetForegroundWindow( hWnd )
      Return
   ENDIF

   PREPARE FONT oFont NAME "Arial" WIDTH 0 HEIGHT -15 WEIGHT 400

   INIT WINDOW oMainWindow MAIN TITLE "Hora da Saida"

   CONTEXT MENU oTrayMenu
      MENUITEM "Acertar a Hora"  ACTION {|| oTimer:End(),Informa_Saida(),Liga_Timer(.T.,oTimer,oMainWindow)}
      MENUITEM "Sobre" ACTION {|| Sobre()}
      SEPARATOR
      MENUITEM "Sair" ACTION {|| Sair()}
   ENDMENU

   SET TIMER oTimer of oMainWindow VALUE 10000 ACTION {|| Verifica_Hora() }

   oMainWindow:InitTray(oIcone,,oTrayMenu,"Hora de Saida")

   ACTIVATE WINDOW oMainWindow NOSHOW
   oTrayMenu:End()
RETURN Nil

FUNCTION Sair
   IF MSGNOYES("Deseja Realmete Sair do Programa ?","Aviso do Sistema")
      DBCLOSEALL()
      __Quit()
   ELSE
      RETURN
   ENDIF
RETURN

FUNCTION VERIFICA_HORA
   DBSELECTAREA("ALARME")
   DO CASE
   CASE DOW(DATE()) = 2
      cTime:=ALARME->Seg
   CASE DOW(DATE()) = 3
      cTime:=ALARME->Ter
   CASE DOW(DATE()) = 4
      cTime:=ALARME->Qua
   CASE DOW(DATE()) = 5
      cTime:=ALARME->Qui
   CASE DOW(DATE()) = 6
      cTime:=ALARME->Sex
   ENDCASE
   IF TIME() >= TRAN(cTime,"@R 99:99:99")
      Info("Hora de Bater o Ponto : "+Time(),"ATENۂO!")
   ENDIF
RETURN NIL

FUNCTION SOBRE
RETURN NIL

FUNCTION Info(cMensagem,cTitulo)
DEFAULT cTitulo TO "Aviso do Sistema"
RETURN MsgInfo(HB_OemToAnsi(cMensagem),Hb_OemToAnsi(cTitulo))

FUNCTION Informa_Saida()

PRIVATE cTime, oFrm, oFont, oDlgHabla:=NIL, oVar1:=Space(8)

   DBSELECTAREA("ALARME")
   DO CASE
   CASE DOW(DATE()) = 2
      oVar1:=ALARME->Seg
   CASE DOW(DATE()) = 3
      oVar1:=ALARME->Ter
   CASE DOW(DATE()) = 4
      oVar1:=ALARME->Qua
   CASE DOW(DATE()) = 5
      oVar1:=ALARME->Qui
   CASE DOW(DATE()) = 6
      oVar1:=ALARME->Sex
   ENDCASE


   PREPARE FONT oFontBtn NAME "Courier New" WIDTH 0 HEIGHT -16 charSet 255
   INIT DIALOG oFrm TITLE "Hora de Saida" CLIPPER FONT oFontBtn;
   AT 100,150;
   SIZE 255,200 ;
   ICON oIcon ;
   STYLE WS_DLGFRAME + WS_SYSMENU + DS_CENTER + WS_VISIBLE

   @ 50,40 ICON "IMG\Clock_128_HOT.ICO" SIZE 75,75

   @ 15,40   Say "Hora......:"
   @ 90,40   Get cTime VAR oVar1  ;
             PICTURE "@R 99:99:99";
             SIZE 95,30           ;
             STYLE WS_DLGFRAME

   @ 015,130 BUTTONEX btnOk  CAPTION "&Gravar";
             ON CLICK {||Informa_Time(oVar1)} ;
             SIZE 100, 32 ICON oOk:Handle     ;
             STYLE WS_TABSTOP                 ;
             BSTYLE ST_ALIGN_HORIZ

   @ 140,130 BUTTONEX btnCanc  CAPTION "&Sair";
             ON CLICK {||Sair()}              ;
             SIZE 100, 32 ICON oCanc:Handle   ;
             STYLE WS_TABSTOP                 ;
             BSTYLE ST_ALIGN_HORIZ

   ACTIVATE DIALOG oFrm
RETURN NIL

FUNCTION INFORMA_TIME(cTime)
LOCAL cHora:=Subst(cTime,1,2)+":"+Subst(cTime,3,2)+":"+Subst(cTime,5,2)

   IF !EMPTY(cTime) .AND. TimeValid(cHora) .AND. cHora >= Time()
      DBSELECTAREA("ALARME")
      ALARME->(DBRLOCK())
      DO CASE
      CASE DOW(DATE()) = 2
         ALARME->Seg:=cTime
      CASE DOW(DATE()) = 3
         ALARME->Ter:=cTime
      CASE DOW(DATE()) = 4
         ALARME->Qua:=cTime
      CASE DOW(DATE()) = 5
         ALARME->Qui:=cTime
      CASE DOW(DATE()) = 6
         ALARME->Sex:=cTime
      ENDCASE
      ALARME->(DBCOMMIT())
      ALARME->(DBUNLOCK())
      EndDialog()
   ELSE
      Info("Informe uma hora v lida")
      oVar1:=SPACE(8)
      oFrm:cTime:Refresh()
      oFrm:cTime:SetFocus()
   ENDIF
RETURN NIL

FUNCTION LIGA_TIMER(lLogico,oTempo,oJanela)
   SET TIMER oTempo of oJanela VALUE 10000 ACTION {|| Verifica_Hora() }
RETURN NIL
Qual script devo usar para gerar este programa.

[]´s
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Responder