Jump to content
Fivewin Brasil

Harbour ou xHarbour


oribeiro

Recommended Posts

Valeu João,

O script do hbmk2.exe parece bem mais simples.

Preciso saber agora quais LIBs devo incluir para o FWH e quais são os parâmetros de compilação do Harbour.

No xHarbour uso: LIBFILES = fiveh.lib fivehc.lib xhb.lib lang.lib vm.lib rtl.lib rdd.lib macro.lib pp.lib dbfntx.lib dbfcdx.lib dbffpt.lib common.lib gtgui.lib codepage.lib ct.lib tip.lib pcrepos.lib hsx.lib hbsix.lib zlib.lib hbzip.lib png.lib $(CC_DIR)\lib\import32.lib $(CC_DIR)\lib\cw32.lib $(CC_DIR)\lib\psdk\msimg32.lib $(CC_DIR)\lib\psdk\psapi.lib

Parâmetros do xHarbour: -D__EXPORT__ -n -go -I$(HB_DIR)\include $(HARBOURFLAGS) -I$(FWH)\include -o$* $**

# ---------------------------
# Nome do Executavel
# ---------------------------
-omvend
# ---------------------------
# Bibliotecas
# ---------------------------
-lfiveh
-lfivehc
# ---------------------------
# Caminhos dos Includes
# ---------------------------
-incpath=d:\harbour\include;c:\fwh\include;c:\bcc582\include
# ---------------------------
# Caminho das Libs da HWGui
# ---------------------------
-Lc:\harbour\lib
-Lc:\fwh\lib
-Lc:\bcc582\lib
# ---------------------------
# Outros Parametros
# ---------------------------
-workdir=.\obj\
-head=native
-n
-nowarn
-inc
-mt
-b
# ---------------------------
# Prg(s) e Rc(s)
# ---------------------------
MVEND.PRG
TMETAFIL.PRG
RPREVIEW.PRG
BUTTONB.PRG
WBROWSE.PRG
TDOSPRN.PRG
browse.prg
scroll.prg
qftp.prg
tsmtp.prg
banner.prg
barlib.prg
codabar.prg
code128.prg
code3de9.prg
ean13.prg
go_code.prg
int25.prg
CCBAN.PRG
CCCAI.PRG
CCCAT.PRG
CCCHQ.PRG
CCCPG.PRG
CCCRC.PRG
CCLIE.PRG
CCMVMT.PRG
CCONT.PRG
CCPAG.PRG
CCPAR.PRG
CCREC.PRG
CCTRAB.PRG
CFORN.PRG
CFPED.PRG
CFRETE.PRG
CGRUP.PRG
CGRVD.PRG
CLOTE.PRG
CMOED.PRG
CMOVCC.PRG
CMVSIM.PRG
CNIMP.PRG
CNOTA.PRG
CNSER.PRG
COAPO.PRG
CCEST.PRG
COMAN.PRG
COMOT.PRG
CPARA.PRG
CPREC.PRG
CPREE.PRG
CPREM.PRG
CPRIS.PRG
CPROCO.PRG
CPROD.PRG
CPROFOR.PRG
CPROPSE.PRG
CPROSI.PRG
CRMAN.PRG
CSERV.PRG
CTART.PRG
CTCFP.PRG
CTCST.PRG
CTICM.PRG
CTNAT.PRG
CTRAN.PRG
CUSER.PRG
CVCGR.PRG
CVCPR.PRG
CVEDI.PRG
CVEEN.PRG
CVEIC.PRG
CVEND.PRG
ECLIE.PRG
EVEND.PRG
EFORN.PRG
EPROD.PRG
LBOLC.PRG
LBOLE.PRG
LCBAI.PRG
LCBXP.PRG
LCCH1.PRG
LCCHQ.PRG
LCFLX.PRG
LCLIE.PRG
LCMAP.PRG
LCONT.PRG
LCREM.PRG
LCREP.PRG
LCRES.PRG
LCUPOM.PRG
LDUPL.PRG
LECON.PRG
LFCAL.PRG
LFORN.PRG
LFREC.PRG
LCOMP.PRG
LGERE.PRG
LLVEN.PRG
LMVEMP.PRG
LMVME.PRG
LMVMT.PRG
CINVE.PRG
LNCOM.PRG
LNCUS.PRG
LNOTAF.PRG
LNRES.PRG
LNREE.PRG
LORES.PRG
LOROS.PRG
LOSDS.PRG
LOVDC.PRG
LOVDP.PRG
LOVDS.PRG
LPCOM.PRG
LPLAR.PRG
LPROD.PRG
LPVEN.PRG
LPNFS.PRG
LRCOM.PRG
LSCOM.PRG
LTELV.PRG
LVEST.PRG
NFPADRAO.PRG
NFRSF.PRG
NF7VIDAS.PRG
NFAVLIS.PRG
NFBIGBOY.prg
NFDEKALK.PRG
NFCAMPCA.prg
NFIMARC.prg
NFINBRSO.PRG
NFITUFLU.prg
NFITUTI.PRG
NFLADBOR.PRG
NFPECSIL.prg
NFVAHLE.PRG
NFVALEN.PRG
SINTEGRA.PRG
lib\FACHA.PRG
lib\FBOLETO.PRG
lib\FCHRS.PRG
lib\FCONT.PRG
lib\FCRYP.PRG
lib\FDATA.PRG
lib\FDBFS.PRG
lib\FERRO.PRG
lib\FFUNC.PRG
lib\FGEREL.PRG
lib\FGRAF.PRG
lib\FNTXS.PRG
lib\FORGA.PRG
lib\FPED_OS.PRG
lib\FPRECO.PRG
lib\FSENH.PRG
lib\FSETS.PRG
lib\FVERREL.PRG
lib\FCALC.PRG
lib\fRTF.PRG
lib\xblite\XBLITE.PRG

Link to comment
Share on other sites

Segue o código.

(CCFTPRECOS->TAB_&cColPr)>0

ESSE É O TRECHO DO CÓDIGO:

         // Preços //
         if net_use("FTPRECOS",cPrg)
            Select(cDbCCProd)  && --> Produto
            Set Relation To (cDbCCProd)->LstPr+(cDbCCProd)->Prod Into CCFTPRECOS
            Select(cDbCCPedI)
            Reg   := Recn()
            cMemo := ""
            DbGoTop()
            Do While !Eof()
               if (CCFTPRECOS->TAB_&cColPr)>0 .and. Compara_Valor(CCFTPRECOS->TAB_&cColPr, (cDbCCPedI)->ValUn, "<")
                  if empty(cMemo)
                     cMemo := cMemo+"It. Produto         Un       $Atual   $Últ.Compr  $Diferença"+chr(13)+chr(10)
                     cMemo := cMemo+"=== =============== == ============ ============ ==========="+chr(13)+chr(10)
                  endif
                  cMemo := cMemo+(cDbCCPedI)->Item+" "+(cDbCCPedI)->Prod+" "+(cDbCCProd)->Unid+" "+Transform((cDbCCPedI)->ValUn,meMask12)+" "+;
                           Transform(CCFTPRECOS->TAB_&cColPr,meMask12)+" "+Transform((CCFTPRECOS->TAB_&cColPr-(cDbCCPedI)->ValUn)*-1,meMask11)+chr(13)+chr(10)
               endif
               DbSkip()
            EndDo
            Fecha_Arquivo("CCFTPRECOS")
            Select(cDbCCPedI)
            DBGOTO(Reg)
            Select(cDbCC)
         endif

AQUI ESTÁ O ERRO DE COMPILAÇÃO:

hbmk2: Warning: Ignoring explicitly specified core library directory:
       c:\harbour\lib (in option '-Lc:\harbour\lib' in mvendh.hbp:17)
hbmk2: Warning: Deprecated compatibility option: '-nowarn' in mvendh.hbp:27.
       Use '-warn=no' instead.
hbmk2: Compiling Harbour sources...
Harbour 3.2.0dev (r1307082134)
Copyright (c) 1999-2013, http://harbour-project.org/
Compiling 'CFPED.PRG'...
CFPED.PRG(547) Error E0042  Macro of declared symbol 'TAB_&CCOLPR'
CFPED.PRG(553) Error E0042  Macro of declared symbol 'TAB_&CCOLPR'
CFPED.PRG(774) Error E0042  Macro of declared symbol 'TAB_&CCOLPR'
3 errors

No code generated.
hbmk2: Error: Running Harbour compiler. 1
C:\HARBOUR\bin\harbour.exe -n CFPED.PRG -n -D__EXPORT__ -b -m -w0 -oobj\ -iC:\BC
C582\Include -iC:\BCC582\Include\dinkumware -iC:\HARBOUR\include -id:\harbour\in
clude;c:\fwh\include;c:\bcc582\include
******************************
*** DEU ERRO NA COMPILACAO ***
******************************
Pressione qualquer tecla para continuar. . .
Link to comment
Share on other sites

Modifiquei as linhas que estavam dando erro e agora está dando erro de linkagem. O que pode ser?

hbmk2: Linking... $*.exe
Turbo Incremental Link 5.69 Copyright (c) 1997-2005 Borland
Error: Could not create $*.tds (error code 123)
hbmk2: Error: Running linker. 2
ilink32.exe @C:\Users\Oscar\AppData\Local\Temp\b3l8aj.lnk
******************************
*** DEU ERRO NA COMPILACAO ***
******************************
Pressione qualquer tecla para continuar. . .

O arquivo de lote que estou usando é:

# ---------------------------
# Nome do Executavel
# ---------------------------
-omvend
# ---------------------------
# Bibliotecas
# ---------------------------
-lfiveh
-lfivehc
# ---------------------------
# Caminhos dos Includes
# ---------------------------
-incpath=c:\harbour\include;c:\fwh\include;c:\bcc582\include
# ---------------------------
# Caminho das Libs da HWGui
# ---------------------------
-Lc:\harbour\lib
-Lc:\fwh\lib
-Lc:\bcc582\lib
# ---------------------------
# Outros Parametros
# ---------------------------
#-go $**
#-nowarn
-workdir=.\obj\
-head=native
-n
-inc
-mt
-D__EXPORT__
-b
-m
-w0
-o$*
# ---------------------------
# Prg(s) e Rc(s)
# ---------------------------
MVEND.PRG
TMETAFIL.PRG
RPREVIEW.PRG
BUTTONB.PRG
WBROWSE.PRG
TDOSPRN.PRG
browse.prg
scroll.prg
qftp.prg
tsmtp.prg
banner.prg
barlib.prg
codabar.prg
code128.prg
code3de9.prg
ean13.prg
go_code.prg
int25.prg
CCBAN.PRG
CCCAI.PRG
CCCAT.PRG
CCCHQ.PRG
CCCPG.PRG
CCCRC.PRG
CCLIE.PRG
CCMVMT.PRG
CCONT.PRG
CCPAG.PRG
CCPAR.PRG
CCREC.PRG
CCTRAB.PRG
CFORN.PRG
CFRETE.PRG
CGRUP.PRG
CGRVD.PRG
CLOTE.PRG
CMOED.PRG
CMOVCC.PRG
CMVSIM.PRG
CNIMP.PRG
CNSER.PRG
COAPO.PRG
CCEST.PRG
COMAN.PRG
COMOT.PRG
CPARA.PRG
CPREC.PRG
CPREE.PRG
CPREM.PRG
CPRIS.PRG
CPROCO.PRG
CPROD.PRG
CPROFOR.PRG
CPROPSE.PRG
CPROSI.PRG
CRMAN.PRG
CSERV.PRG
CTART.PRG
CTCFP.PRG
CTCST.PRG
CTICM.PRG
CTNAT.PRG
CTRAN.PRG
CUSER.PRG
CVCGR.PRG
CVCPR.PRG
CVEDI.PRG
CVEEN.PRG
CVEIC.PRG
CVEND.PRG
ECLIE.PRG
EVEND.PRG
EFORN.PRG
EPROD.PRG
LBOLC.PRG
LBOLE.PRG
LCBAI.PRG
LCBXP.PRG
LCCH1.PRG
LCCHQ.PRG
LCFLX.PRG
LCLIE.PRG
LCMAP.PRG
LCONT.PRG
LCREM.PRG
LCREP.PRG
LCRES.PRG
LCUPOM.PRG
LDUPL.PRG
LECON.PRG
LFCAL.PRG
LFORN.PRG
LFREC.PRG
LCOMP.PRG
LGERE.PRG
LLVEN.PRG
LMVEMP.PRG
LMVME.PRG
LMVMT.PRG
LNCUS.PRG
LNOTAF.PRG
LNRES.PRG
LNREE.PRG
LORES.PRG
LOROS.PRG
LOSDS.PRG
LOVDC.PRG
LOVDP.PRG
LOVDS.PRG
LPCOM.PRG
LPLAR.PRG
LPROD.PRG
LPVEN.PRG
LPNFS.PRG
LRCOM.PRG
LSCOM.PRG
LTELV.PRG
LVEST.PRG
NFPADRAO.PRG
NFRSF.PRG
NF7VIDAS.PRG
NFAVLIS.PRG
NFBIGBOY.prg
NFDEKALK.PRG
NFCAMPCA.prg
NFIMARC.prg
NFINBRSO.PRG
NFITUFLU.prg
NFITUTI.PRG
NFLADBOR.PRG
NFPECSIL.prg
NFVAHLE.PRG
NFVALEN.PRG
SINTEGRA.PRG
lib\FBOLETO.PRG
lib\FCHRS.PRG
lib\FCONT.PRG
lib\FCRYP.PRG
lib\FDATA.PRG
lib\FDBFS.PRG
lib\FGEREL.PRG
lib\FGRAF.PRG
lib\FNTXS.PRG
lib\FORGA.PRG
lib\FPED_OS.PRG
lib\FPRECO.PRG
lib\FSENH.PRG
lib\FSETS.PRG
lib\FVERREL.PRG
lib\FCALC.PRG
lib\fRTF.PRG
CFPED.PRG
CNOTA.PRG
CINVE.PRG
LNCOM.PRG
lib\FACHA.PRG
lib\FERRO.PRG
lib\FFUNC.PRG
lib\xblite\XBLITE.PRG
Link to comment
Share on other sites

Posso estar enganado, parece mais um erro de lógica, 'TAB_&CCOLPR'

Compara_Valor(CCFTPRECOS->TAB_&cColPr, ANALISE alias->campo, logo se campo muda parte do nome o correto e usar concatenação e não macro, ficando assim CCFTPRECOS->(fieldget(fieldpos("tab_"+ccolpr))).

JMSILVA

Link to comment
Share on other sites

JMSilva,

No xHarbour funciona. Eu tenho várias tabelas de preços em campos: TAB_1, TAB_2, TAB_3, etc e no xHarbou ele faz essa macrosubstituição.

No Harbour tive que fazer o seguinte:

cTab := "TAB_"+cColPr

compara_valor(&cTab, ...

Passou! Agora eu estou com problema em linkar os programas.

Você tem um exemplo de script para compilação Harbour+FiveWin com HbMk2.exe ??

Aguardo,

Link to comment
Share on other sites

O conteúdo abaixo vc cria um arquivo NOMEQUALQUER.HBP


EXEMPLO: HB30.HBP


#tem que ser primeiro

ERRSYSW.PRG


#outros prg

M_SAMPA.PRG

i_CADMAT.PRG

F_CMDSQL.PRG

F_GLOBAL.PRG

I_OPESIP.PRG

#I_CADPES.PRG

X_TABELA.PRG

#X_WEBCAM.PRG

X_TCALC.PRG

F_BKPZIP.PRG


SAMPA.RC


#outras lib

-lhbct

-lxhb

-lhbwin

-lhbxpp


#Lib ZIP

-lhbzlib

-lhbmzip

-lminizip

-lhbziparc


#Lib sqllite

-lhbsqlit3

-lsqlite3


#Lib sqllib

#-lsqllib

#-llibmysql


#Lib da FIVEWIN

-lfiveh

-lfivehc


-lodbc32


-incremental


#Padrão gui=gráfico -std=console

-gui

#-std


#compila so os alterados

-inc


# Forçar recompilação

#-rebuild


#-debug

-resflag=win


# FUNCTION INICIAL

#-main=M_sampa


#icone do executável

-icon=bmp\sampa.ico


# Out = Arquivo de Saida pode ter a path tb

-osampa.exe


#path dos arquivos .ch e .h includes

-incpath=C:\HB30\INCLUDE;C:\BCC582\INCLUDE;C:\FWH\INCLUDE


#path da lib

-LC:\HB30\LIB\WIN\BCC;C:\BCC582\LIB;C:\BCC582\LIB\PSDK

#;C:\FWH\LIB


#path onde sao gerados os arquivos .c e .obj

-workdir=obj


#outro parametro nÆo sei para q e

#-head=native


# compactar com UPX no=compacta yes=nao compacta

#-compr //da um pau de memoria


# Executar apos a compilação

-run



PARA COMPILAR

HBMK2 HB30.HBP



é muito simples, lembrando de vc ter na path o local do executável hbmk2.exe, ou acrescentar a path ao executar

\hb30\bin\hbmk2 hb30.hbp


Este é um script que uso para um pequeno sistema de controle de material.



BLZ


Qq dúvida pode mandar por e-mail q respondo: saa50@bol.como.br


JMSILVA

Link to comment
Share on other sites

Valeu JMSILVA,

Era exatamente o que eu precisava.

Consegui compilar todo o meu sistema com Harbour usando o modelo do seu script.

Apenas tive que anular algumas funções que não encontrei no Harbour, são elas:

- disktotal()

- turl()
- tipclienthttp()
Você sabe se elas estão em alguma biblioteca que eu não linkei ou se existem funções similares?
Aguardo, obrigado.
Link to comment
Share on other sites

Oscar, para as funções turl() e tipclienthttp() vc tem que incluir as libs hbtip.lib do harbour e a lib\psdk\ws2_32.lib do Borland.

Agora para DISKTOTAL() não achei para harbour, vc terá que mudar hb_DiskSpace("e:",3)

HB_DISK_AVAIL 0 Free disk space avialable to the application (default)

HB_DISK_FREE 1 Total free disk space
HB_DISK_USED 2 Used disk space
HB_DISK_TOTAL 3 Total disk space

blz

JMSILVA

Link to comment
Share on other sites

Obrigado JMSILVA,

Todas as suas dicas funcionaram! Estou chegando lá.

Agora eu estou com nessa função:

///////////////////////////////
// ROTINA PARA LER GPR ERROR //
///////////////////////////////
// __GenGpf() // msgstop( "-Simula erro GPF-" )
#include "hbexcept.ch"
********************************
Function GpfHandler( Exception )
********************************
   local cMsg, nCode, oError
** TraceLog( "GPF:", Exception )
** memowrit( "gpf.txt", valtoprg( Exception ) )
   IF Exception <> NIL
      nCode := Exception:ExceptionRecord:ExceptionCode
      SWITCH nCode
      CASE EXCEPTION_ACCESS_VIOLATION
         cMsg := "EXCEPTION_ACCESS_VIOLATION - A impressora está instalada? (Tentativa de ler/escrever onde não tem acesso)"
         EXIT
      CASE EXCEPTION_DATATYPE_MISALIGNMENT
         cMsg := "EXCEPTION_DATATYPE_MISALIGNMENT - O thread tentou ler/escrever dados desalinhados em hardware que não oferece alinhamento. Por exemplo, valores de 16 bits precisam ser alinhados em limites de 2 bytes; valores de 32 bits em limites de 4 bytes, etc. "
         EXIT
      CASE EXCEPTION_ARRAY_BOUNDS_EXCEEDED
         cMsg := "EXCEPTION_ARRAY_BOUNDS_EXCEEDED - O thread tentou acessar um elemento de array fora dos limites e o hardware possibilita a checagem de limites."
         EXIT
      CASE EXCEPTION_FLT_DENORMAL_OPERAND
         cMsg := "EXCEPTION_FLT_DENORMAL_OPERAND - Um dos operandos numa operação de ponto flutuante está desnormatizado. Um valor desnormatizado é um que seja pequeno demais para poder ser representado no formato de ponto flutuante padrão."
         EXIT
      CASE EXCEPTION_FLT_DIVIDE_BY_ZERO
         cMsg := "EXCEPTION_FLT_DIVIDE_BY_ZERO - O thread tentou dividir um valor em ponto flutuante por um divisor em ponto flutuante igual a zero."
         EXIT
      CASE EXCEPTION_FLT_INEXACT_RESULT
         cMsg := "EXCEPTION_FLT_INEXACT_RESULT - O resultado de uma operação de ponto flutuante não pode ser representado como uma fração decimal exata."
         EXIT
      CASE EXCEPTION_FLT_INVALID_OPERATION
         cMsg := "EXCEPTION_FLT_INVALID_OPERATION - Qualquer operação de ponto flutuante não incluída na lista."
         EXIT
      CASE EXCEPTION_FLT_OVERFLOW
         cMsg := "EXCEPTION_FLT_OVERFLOW - O expoente de uma operação de ponto flutuante é maior que a magnitude permitida pelo tipo correspondente."
         EXIT
      CASE EXCEPTION_FLT_UNDERFLOW
         cMsg := "EXCEPTION_FLT_UNDERFLOW - O expoente de uma operação de ponto flutuante é menor que a magnitude permitida pelo tipo correspondente."
         EXIT
      CASE EXCEPTION_INT_DIVIDE_BY_ZERO
         cMsg := "EXCEPTION_INT_DIVIDE_BY_ZERO - O thread tentou dividir um valor inteiro por um divisor inteiro igual a zero."
         EXIT
      CASE EXCEPTION_INT_OVERFLOW
         cMsg := "EXCEPTION_INT_OVERFLOW - O resultado de uma operação com inteiros causou uma transposição (carry) além do bit mais significativo do resultado."
         EXIT
      CASE EXCEPTION_PRIV_INSTRUCTION
         cMsg := "EXCEPTION_PRIV_INSTRUCTION - O thread tentou executar uma instrução cuja operação não é permitida no modo de máquina atual."
         EXIT
      CASE EXCEPTION_IN_PAGE_ERROR
         cMsg := "EXCEPTION_IN_PAGE_ERROR - O thread tentou acessar uma página que não estava presente e o sistema não foi capaz de carregar a página. Esta exceção pode ocorrer, por exemplo, se uma conexão de rede é perdida durante a execução do programa via rede."
         EXIT
      CASE EXCEPTION_ILLEGAL_INSTRUCTION
         cMsg := "EXCEPTION_ILLEGAL_INSTRUCTION - O thread tentou executar uma instrução inválida."
         EXIT
      CASE EXCEPTION_NONCONTINUABLE_EXCEPTION
         cMsg := "EXCEPTION_NONCONTINUABLE_EXCEPTION - O thread tentou continuar a execução após a ocorrência de uma exceção irrecuperável."
         EXIT
      CASE EXCEPTION_STACK_OVERFLOW
         cMsg := "EXCEPTION_STACK_OVERFLOW - O thread esgotou sua pilha (estouro de pilha)."
         EXIT
      CASE EXCEPTION_INVALID_DISPOSITION
         cMsg := "EXCEPTION_INVALID_DISPOSITION - Um manipulador (handle) de exceções retornou uma disposição inválida para o tratador de exceções. Uma exceção deste tipo nunca deveria ser encontrada em linguagens de médio/alto nível."
         EXIT
      CASE EXCEPTION_GUARD_PAGE
         cMsg := "CASE EXCEPTION_GUARD_PAGE"
         EXIT
      CASE EXCEPTION_INVALID_HANDLE
         cMsg := "EXCEPTION_INVALID_HANDLE"
         EXIT
      CASE EXCEPTION_SINGLE_STEP
         cMsg := "EXCEPTION_SINGLE_STEP Um interceptador de passos ou outro mecanismo de instrução isolada sinalizou que uma instrução foi executada."
         EXIT
      CASE EXCEPTION_BREAKPOINT
         cMsg := "EXCEPTION_BREAKPOINT - Foi encontrado um ponto de parada (breakpoint)."
         EXIT
      CASE EXCEPTION_FLT_STACK_CHECK
         cMsg := "EXCEPTION_FLT_STACK_CHECK - A pilha ficou desalinhada ('estourou' ou 'ficou abaixo') como resultado de uma operação de ponto flutuante."
         EXIT
      DEFAULT
         cMsg := "UNKNOWN EXCEPTION (" + cStr( Exception:ExceptionRecord:ExceptionCode ) + ")"
      END
   ENDIF
** IF cMsg <> NIL
**    Tracelog( "GPF Intercepted!", cMsg )
**    Alert( "GPF Intercepted!" + CRLF + cMsg )
** ENDIF
** Throw( ErrorNew( "GPFHANDLER", 0, 0, ProcName(), "Erro de GPF", { cMsg, Exception, nCode }, Procfile(), Procname(), procline() ) )
   oError := ErrorNew( "GPFHANDLER", 0, 0, ProcName(), cMsg, { cMsg, Exception, nCode }, Procfile(), Procname(), procline() )
   ErrorDialog( oError )
RETURN(EXCEPTION_EXECUTE_HANDLER)

O erro é no comando CASE:


O:\SIST\WOASYS>h
hbmk2: Compiling Harbour sources...
Harbour 3.2.0dev (r1307082134)
Copyright (c) 1999-2013, http://harbour-project.org/
Compiling 'lib\FERRO.PRG'...
lib\FERRO.PRG(426) Error E0055  CASE requires either numeric or string constant
lib\FERRO.PRG(429) Error E0055  CASE requires either numeric or string constant
lib\FERRO.PRG(432) Error E0055  CASE requires either numeric or string constant
lib\FERRO.PRG(435) Error E0055  CASE requires either numeric or string constant
lib\FERRO.PRG(438) Error E0055  CASE requires either numeric or string constant
lib\FERRO.PRG(441) Error E0055  CASE requires either numeric or string constant
lib\FERRO.PRG(444) Error E0055  CASE requires either numeric or string constant
lib\FERRO.PRG(447) Error E0055  CASE requires either numeric or string constant
lib\FERRO.PRG(450) Error E0055  CASE requires either numeric or string constant
lib\FERRO.PRG(453) Error E0055  CASE requires either numeric or string constant
lib\FERRO.PRG(456) Error E0055  CASE requires either numeric or string constant
lib\FERRO.PRG(459) Error E0055  CASE requires either numeric or string constant
lib\FERRO.PRG(462) Error E0055  CASE requires either numeric or string constant
lib\FERRO.PRG(465) Error E0055  CASE requires either numeric or string constant
lib\FERRO.PRG(468) Error E0055  CASE requires either numeric or string constant
lib\FERRO.PRG(471) Error E0055  CASE requires either numeric or string constant
lib\FERRO.PRG(474) Error E0055  CASE requires either numeric or string constant
lib\FERRO.PRG(477) Error E0055  CASE requires either numeric or string constant
lib\FERRO.PRG(480) Error E0055  CASE requires either numeric or string constant
lib\FERRO.PRG(483) Error E0055  CASE requires either numeric or string constant
lib\FERRO.PRG(486) Error E0055  CASE requires either numeric or string constant
lib\FERRO.PRG(489) Error E0055  CASE requires either numeric or string constant
lib\FERRO.PRG(492) Error E0020  Incomplete statement or unbalanced delimiters
23 errors

No code generated.
hbmk2: Error: Running Harbour compiler. 1
c:\harbour\bin\harbour.exe -n lib\FERRO.PRG -oobjh\ -iC:\BCC582\Include -iC:\BCC
582\Include\dinkumware -ic:\harbour\include -incremental -ic:\harbour\include;c:
\bcc582\include;c:\fwh\include

O:\SIST\WOASYS>

Aguardo suas considerações, obrigado.

Link to comment
Share on other sites

Eu troquei o:

SWITCH nCode
CASE ...

por um CASE normal:

DO CASE

CASE nCode=...

ENDCASE

Funcionou! Consegui compilar e gerar o executável em Harbour 3.0+Fwh13.12

Agora eu estou testando aplicação inteira, algumas coisas deixaram de funcionar, como o tGraph e a classe Sintegra. Estou estudando as mudanças.

Obrigado a todos, por enquanto.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...