Página 1 de 1

Função VAL() nao reconhecida

Enviado: 09 Mai 2015 11:21
por Cavalo Marinho
Bom dia Pessoal
Estou necessitando da ajuda dos mestres, pois não conseguir desvendar este mistério, estou modificando meu sistemas para harbour+minigui extend (reescrevendo tudo), ia tudo bem funcionando uma maravilha, parei por motivo de outros compromisso a um mes atras, quando voltei para o sistema e ao compilar me deparei com um erro que a função val não referenciada na libminigui.a, não tinha feito qualquer atualização até então, como deu este erro atualizei para a versão 2.4.6 e continua com o mesmo erro, estou anexando o arquivo com o erro para melhor analise.
erro de compilacao.txt
(2.57 KiB) Baixado 108 vezes

Função VAL() nao reconhecida

Enviado: 09 Mai 2015 11:49
por Toledo
Cavalo Marinho escreveu:me deparei com um erro que a função val não referenciada na libminigui.a
Bom, de acordo com a mensagem de erro, a função não encontrada é a HB_VAL() e não VAL().
Então verifique o PRG que está usando esta função e troque HB_VAL() por VAL().

Abraços,

Função VAL() nao reconhecida

Enviado: 11 Mai 2015 15:16
por Cavalo Marinho
Boa tarde,
Obrigado por responder Toledo,acontece que em nenhum lugar do meu soft eu estou utilizando esta função hb_val, já verifiquei todos os fontes, foi primeira coisa que fiz, e se você olhar o arquivo que anexei o compilador informa que a função indefinida na libminigui.a (h_getbox.o : h_getbox.c), fique sem entender porque como reportei no post anterior estava compilando normal, depois de um período sem mexer no programa e voltei, começou gerar este erro sem eu fazer exatamente nada. Por enquanto para continuar com o desenvolvimento o que foi que fiz? criei uma função hb_val até tentar encontrar a solução.

Função VAL() nao reconhecida

Enviado: 11 Mai 2015 17:16
por Toledo
Cavalo Marinho escreveu:como deu este erro atualizei para a versão 2.4.6
Cavalo Marinho escreveu:o compilador informa que a função indefinida na libminigui.a
De acordo com as mensagens acima, você está usando a MiniGui Extended, mas compilada com a MingW. Existe alguma razão especial por você estar usando a versão da MiniGui Extended compilada com a MingW?

Acho que deve ser algum bug nesta versão da MiniGui com a MingW, pois na versão da MiniGui Extended com o Borland BCC, este erro não ocorre.

Abraços,

Função VAL() nao reconhecida

Enviado: 11 Mai 2015 21:06
por Claudio Soto
El bug esta en el archivo c:\MiniGUI\source\tget\tget.prg linea 630

Código: Selecionar todos

#if ( __HARBOUR__ - 0 ) < 0x030200
      xValue  := Val( cBuffer )
#else
      xValue  := hb_Val( cBuffer )
#endif
Este código asume que si la version de Harbour es la 3.2 o mayor se utilice la función hb_Val(), pero esta función no existe en Harbour.
Supongo que este error aparece o no según se linke o no esta libreria.

Una solución:

Código: Selecionar todos

FUNCTION hb_Val( cBuffer )
RETURN Val( cBuffer )

Função VAL() nao reconhecida

Enviado: 12 Mai 2015 01:06
por alxsts
Olá!

Na linha #if ( __HARBOUR__ - 0 ) < 0x030200, o valor hexadecimal 0x030200 convertido para decimal é 197120, o que a mim parece não dizer nada. Não estaria aí o erro? Tentando comparar o número da versão do Harbour com 320 e usando um valor incorreto?

Função VAL() nao reconhecida

Enviado: 12 Mai 2015 08:49
por Claudio Soto
Alexandre,
Harbour almacena el numero de versión en forma hexadecimal:

Código: Selecionar todos

#define HB_VER_MAJOR    3        /* Major version number */
#define HB_VER_MINOR    2        /* Minor version number */
#define HB_VER_RELEASE  0        /* Release number */
#define HB_VER_STATUS   "dev"    /* Build status (all lowercase) */
#define __HARBOUR__     0x030200 /* Three bytes: Major + Minor + Release. This is recommented for 3rd party .c and .prg level code. */

Função VAL() nao reconhecida

Enviado: 12 Mai 2015 23:33
por alxsts
Olá!

Agradeço por responder.

Esta é uma característica do Harbour nova para mim mas, sei que todas as linguagens modernas utilizam este recurso e permitem que as aplicações nelas desenvolvidas também o utilizem.

Em qual arquivo include constam as definições apresentadas?

Função VAL() nao reconhecida

Enviado: 12 Mai 2015 23:39
por Claudio Soto
alxsts escreveu:Em qual arquivo include constam as definições apresentadas?
Estan definidas en:

C:\HMG.3.4.0\Harbour\include\hbver.h

C:\MiniGUI\Harbour\include\hbver.h

Função VAL() nao reconhecida

Enviado: 12 Mai 2015 23:59
por alxsts
Olá!

Pensava que fossem constantes manifestas do próprio Harbour. Agora vejo que pertencem a HMG e MiniGUI.

Gracias mas una vez!

Função VAL() nao reconhecida

Enviado: 13 Mai 2015 08:04
por Pablo César
alxsts escreveu:Pensava que fossem constantes manifestas do próprio Harbour. Agora vejo que pertencem a HMG e MiniGUI.
Não Alexandre, esse arquivo include é do próprio Harbour, não são exclusivos da HMG nem Minigui Extended (perceba o path Harbour).

Função VAL() nao reconhecida

Enviado: 13 Mai 2015 09:00
por Cavalo Marinho
Bom dia Pessoal,
Eu nas minhas varias tentativas descobrir o seguinte: Se eu compilo com c:\minigui\buildApp.bat arquivo.hbp arquivo.hbc onde arquivo é o nome do meu projeto o erro da função hb_val() aparece, se compilar com hbmk2 arquivo.hbp arquivo.hbc funciona normal, como se nunca tivesse existido o erro.
Por enquanto vou seguir a sugestão do amigo Claudio Soto.