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á Fladimir,
Para quem não acompa Harbour-Devel, vou resumir aqui, os desenvolvedores do Harbour informaram que essas funções do xharbour foram mal implementas, e que pode usar a função direto com o aplicativo que usa ela, então é só colocar a função abaixo em algum .PRG seu que já resolve:

Código: Selecionar todos

#include "fileio.ch"
#include "common.ch"

*----------------------------------------------------------------------------
FUNCTION FileValid( cFileName, nMaxName, nMaxExt, lWithoutExt, lSpaceInName )
*----------------------------------------------------------------------------
/*
This function return by default, the MS-DOS valid file name (8x3) or an other
format defined by user in accordance with <nMaxName> and <nMaxExt> values.
nMaxName, nMaxExt, lWithoutExt and lSpaceInName are xHarbour extensions.
*/

 Local lRet  := .T.
 Local cName := ""
 Local cExt  := ""
 Local i     := 0
 Local cInvalid := ""
 Local nDecimalPoint := 0
 Local nFileLen := 0

 default cFileName to ""
 default nMaxName  to 8      // max file name len.
 default nMaxExt   to 3      // max extension name len.
 default lWithoutExt to .T.  // allow file name without extension.
 default lSpaceInName to .F. // allow space char in file name.

 if !IsCharacter(cFileName) .or. Empty(cFileName)
    Return .F.
 endif

 if !IsNumber(nMaxName)
    nMaxName := 8
 endif

 if !IsNumber(nMaxExt)
    nMaxExt := 3
 endif

 if !IsLogical(lWithoutExt)
    lWithoutExt := .T.
 endif

 if !IsLogical(lSpaceInName)
    lSpaceInName := .F.
 endif

 if nMaxName <= 0
    Return .F.
 endif

 if nMaxExt <= 0
    nMaxExt := 0
    lWithoutExt := .T.
 endif


 for i := 0 to 255
    if (i>=0  .and. i<=32) .or.;
       i=34 .or.;
       (i>=42 .and. i<=44) .or.;
       (i>=46 .and. i<=47) .or.;
       (i>=58 .and. i<=63) .or.;
       (i>=91 .and. i<=93) .or.;
        i=124 .or. i=127

        cInvalid += chr(i)

    endif
 next

 if lSpaceInName
    cInvalid := StrTran(cInvalid," ","")
 endif

 cFileName := Rtrim(cFileName)

 nDecimalPoint := At(".",cFileName)
 nFileLen      := Len( cFileName )

if nFileLen=0 .or. nFileLen > (nMaxName+nMaxExt+1)
   lRet := .F.
elseif nDecimalPoint > (nMaxName+1)
   lRet := .F.
elseif nDecimalPoint > 0 .and. nMaxExt = 0
   lRet := .F.
elseif nDecimalPoint > 0 .and. nDecimalPoint <= (nMaxName+1)
   cName := SubStr(cFileName,1, nDecimalPoint-1 )
   cExt  := SubStr(cFileName,nDecimalPoint+1 )
   if empty(cName) .or. ( !lWithoutExt .and. empty(cExt) )
      lRet := .F.
   endif
elseif nDecimalPoint=0 .and. !lWithoutExt
   lRet := .F.
elseif nDecimalPoint=0 .and. nFileLen > nMaxName
   lRet := .F.
elseif nDecimalPoint=0 .and. nFileLen <= nMaxName
   cName := cFileName
endif

if lRet

 if !empty(cName)
    if Len(cName) > nMaxName
       lRet := .F.
    endif
 else
    lRet := .F.
 endif

 if lRet .and. ( empty(cExt) .and. !lWithoutExt )
    lRet := .F.
 endif

 if lRet .and. !empty(cExt)
    if Len(cExt) > nMaxExt
       lRet := .F.
    endif
 endif

endif

if lRet

   for i := 1 to Len(cName)
       if SubStr(cName,i,1) $ cInvalid
          lRet := .F.
          exit
       endif
   next

   if lRet .and. !empty(cExt)
      for i := 1 to Len(cExt)
          if SubStr(cExt,i,1) $ cInvalid
             lRet := .F.
             exit
          endif
      next
   endif

endif

Return (lRet)
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Re: Compilar com Harbour

Mensagem por fladimir »

Leonardo obrigado e cmo diria minha finada vovozinha (gaúcha de São Luiz Gonzaga) "Mas q bom Barbaridade"

Entendi, e qto ao DiskTotal, DiskReady, DiskFree e CurDirX lá tb explica, posta o link aí pra eu dar uma olhada...

Obrigado!!!

:)Pos
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
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 »

Coloquei em Anexo o arquivo que contem essas Funçoes

Abaixo o link sobre o FileValid, no Harbour-Devel:
http://www.nabble.com/There-is-a-functi ... 67075.html
Anexos
diskutil.prg
(14.13 KiB) Baixado 276 vezes
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Re: Compilar com Harbour

Mensagem por fladimir »

Grato.. vlw

:)Pos
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
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 amigos.

Estou compilando aplicativos com Harbour, BCC55 e MSVC. :)) :)) :))

Despois de compilado o Harbour com BCC, retirei a pasta Harbour de dentro da pasta trunk, coloquei-a no diretório raiz, e alterei o seu nome para Harbour_bcc.

Em seguida fiz a mesma coisa com o Harbour com MSVC e alterei o seu nome para Harbour_VC.

Ficou assim:
C:\Harbour_bcc
C:\Harbour_vc

Em seguida creiei *.bat's dentro das pastas de desenvolvimento de aplicativos, com as variáveis de ambiente e path's para cada caso. Basta rodar o PathBcc.bat ou PathVC.bat, compilar com o HBMK2, e tudo sai funfando beleza.

Obrigado a todos que me ajudaram nesta migração. :{ :-Y

Agora vem o trabalho para os necessários aprendizados e ajustes, efetuar os devidos testes com lista de prg's (*.hbm) e lib's. Finalmente os testes.
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
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Re: Compilar com Harbour

Mensagem por fladimir »

Olá a todos,

Pessoal devido ter mudado de xHarbour par Harbour estou fazendo uns ajustes e com ajuda de colegas consegui resolver a questão das Funções DiskTotal, DiskFree, etc da CT q não estavam no Harbour, compilando junto com meus fontes o DiskUtil.prg, conforme o Leonardo explanou.

Ok partindo deste raciocínio para a Função CurDirX(), procurei ela e econtrei no philes.c no source do xHarbour, ai eu peguei a parte da função e salvei com o nome de CurdirX.C e compilei junto, mas ta dando erro, alguém sabe pq, eu não manjo nada de C e talvez seja alguma sintaxe no arquivo, abaixo o código de como ficou o CurDirX.C e a mensagem de erro.

Código: Selecionar todos

/*
 * $Id: philes.c,v 1.40 2009/08/19 22:40:47 likewolf Exp $
 */

/*
Referidos créditos q apaguei para poupar espaço.
 */

#include <ctype.h>
#include "hbapi.h"
#include "hbapifs.h"
#include "hbapierr.h"
#include "hbapiitm.h"

#define HB_TOUPPER( c )         ( ( c ) >= 'a' && ( c ) <= 'z' ? ( c ) - ( 'a' - 'A' ) : ( c ) )

HB_FUNC( CURDIRX )
{
   USHORT uiErrorOld = hb_fsError();
   BYTE * pbyBuffer = ( BYTE * ) hb_xgrab( HB_PATH_MAX );
   PHB_ITEM pDrv = hb_param( 1, HB_IT_STRING );
   BYTE cCurDrv = hb_fsCurDrv();
   BYTE cDrv;

   if( pDrv && hb_parclen( 1 ) > 0 )
   {
      cDrv = (BYTE) ( HB_TOUPPER( pDrv->item.asString.value[0] ) - 'A');
      if( cDrv != cCurDrv )
      {
         hb_fsChDrv( cDrv );
      }
   }
   else
   {
      cDrv = cCurDrv;
   }

   hb_fsCurDirBuffEx( cDrv, pbyBuffer, HB_PATH_MAX );

   hb_retcAdopt( ( char * ) pbyBuffer );

   hb_fsChDrv( cCurDrv );
   hb_fsSetError( uiErrorOld );
}

Erro apresentando na compilação:
...
vendedor.c
curdirx.c
curdirx.c(67) : error C2223: left of '->item' must point to struct/union
curdirx.c(67) : error C2223: left of '->item' must point to struct/union
curdirx.c(67) : error C2223: left of '->item' must point to struct/union
curdirx.c(67) : error C2223: left of '->item' must point to struct/union
curdirx.c(67) : fatal error C1903: unable to recover from previous error(s); stopping compilation
Generating Code...
hbmk2: Erro: Executando compilador C. 2
...
Grato e Sucesso!!!

:)Pos
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
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 colegas.

Acabei de compilar o meu primeiro aplicatico comercial com o Harbour-Msvc.

Neste aplicativo uso a função MilliSec() e a Classe Win32prn(). Ao compilar informa a falta desta função e desta classe.

Incluí o Win32prn.prg e o Cttime.prg na lista dos prg's do script "Fio.hbm", mas acredito que esta forma não é a adequada, pois ficaria eternamente dependente dos prg's de lib's.

Eu tentei incluir no script:

Código: Selecionar todos

-lxhb                            <<== nome lib que supostamente deveria conter o Win32prn() e Millisec().
-LC:\Harbour_vc\lib\win\msvc     <<== Path desta lib.
Mas não adiantou.

Como se faz para dar a volta neste problema ?
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. »

Neste aplicativo uso a função MilliSec() e a Classe Win32prn(). Ao compilar informa a falta desta função e desta classe.
Acrecente a lib hbwin.lib

Código: Selecionar todos

2009-02-04 00:29 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
  * contrib/hbwin/win_reg.prg
  * contrib/hbwin/win_osc.c
  * contrib/hbwin/win_os.prg
  * contrib/hbwin/win_tprn.prg
  * contrib/hbwin/win_tprt.prg
  * contrib/hbwin/win_dll.c
  * contrib/hbwin/win_prn1.c
  * contrib/hbwin/win_regc.c
  * contrib/hbwin/tests/testreg.prg
  * contrib/hbwin/tests/testole.prg
    * Renaming hbwin lib functions to a common and bitwidth-neutral
      namespace, which is WIN_*():
      - W32_REGPATHSPLIT()            -> WIN_REGPATHSPLIT()
      - W32_REGREAD()                 -> WIN_REGREAD()
      - W32_REGWRITE()                -> WIN_REGWRITE()
      - WIN32_REGCREATEKEYEX()        -> WIN_REGCREATEKEYEX()
      - WIN32_REGOPENKEYEX()          -> WIN_REGOPENKEYEX()
      - WIN32_REGQUERYVALUEEX()       -> WIN_REGQUERYVALUEEX()
      - WIN32_REGSETVALUEEX()         -> WIN_REGSETVALUEEX()
      - WIN32_REGCLOSEKEY()           -> WIN_REGCLOSEKEY()

  * contrib/hbwin/win_tprn.prg
  * contrib/hbwin/win_prn1.c
  * contrib/hbwin/tests/testprn.prg
    * Renaming hbwin lib functions/classes to a common and bitwidth-neutral
      namespace, which is WIN_*():
      - WIN32PRN class -> WIN_PRN class.
      - WIN32BMP class -> WIN_BMP class.
      - WIN32_ARC()                   -> WIN_ARC()
      - WIN32_BITMAPSOK()             -> WIN_BITMAPSOK()
      - WIN32_CREATEDC()              -> WIN_CREATEDC()
      - WIN32_CREATEFONT()            -> WIN_CREATEFONT()
      - WIN32_DELETEDC()              -> WIN_DELETEDC()
      - WIN32_DRAWBITMAP()            -> WIN_DRAWBITMAP()
      - WIN32_ELLIPSE()               -> WIN_ELLIPSE()
      - WIN32_ENDDOC()                -> WIN_ENDDOC()
      - WIN32_ENDPAGE()               -> WIN_ENDPAGE()
      - WIN32_ENUMFONTS()             -> WIN_ENUMFONTS()
      - WIN32_FILLRECT()              -> WIN_FILLRECT()
      - WIN32_GETCHARSIZE()           -> WIN_GETCHARSIZE()
      - WIN32_GETDEVICECAPS()         -> WIN_GETDEVICECAPS()
      - WIN32_GETEXEFILENAME()        -> WIN_GETEXEFILENAME()
      - WIN32_GETPRINTERFONTNAME()    -> WIN_GETPRINTERFONTNAME()
      - WIN32_GETTEXTSIZE()           -> WIN_GETTEXTSIZE()
      - WIN32_LINETO()                -> WIN_LINETO()
      - WIN32_LOADBITMAPFILE()        -> WIN_LOADBITMAPFILE()
      - WIN32_MULDIV()                -> WIN_MULDIV()
      - WIN32_OS_ISWIN9X()            -> WIN_OS_ISWIN9X()
      - WIN32_RECTANGLE()             -> WIN_RECTANGLE()
      - WIN32_SETBKMODE()             -> WIN_SETBKMODE()
      - WIN32_SETCOLOR()              -> WIN_SETCOLOR()
      - WIN32_SETDOCUMENTPROPERTIES() -> WIN_SETDOCUMENTPROPERTIES()
      - WIN32_SETMAPMODE()            -> WIN_SETMAPMODE()
      - WIN32_SETPEN()                -> WIN_SETPEN()
      - WIN32_STARTDOC()              -> WIN_STARTDOC()
      - WIN32_STARTPAGE()             -> WIN_STARTPAGE()
      - WIN32_TEXTOUT()               -> WIN_TEXTOUT()

  ; INCOMPATIBLE. Please update your source code.
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.

Obrigado pelo retorno.

A Classe Win32prn() realmente está nesta HbWin.lib, mas a função Millisec() não. Em qual lib estaria esta funçã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
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: Compilar com Harbour

Mensagem por Maligno »

Arquivo XHB.LIB, creio eu.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
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,
Creio que esteja na HBCT.LIB
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.

É Maligno, eu também achei que esta função MilliSec() estivesse na XHB.lib, conforme a documentação do xHarbour, mas não está.

O Leonardo é que acertou na mosca. É na (HBct.lib) que ela está.

Eu já estava pensando em testar, uma por uma, todas as 66 lib's que estão no Harbour.

Pelo que estou percebendo, o Harbour tem lá suas diferenças em relação ao xHarbour, no tocante às libs.

Onde poderíamos obter uma lista das funções presentes em cada uma das lib's do Harbour ???

Valeu. Obrigado.
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
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: Compilar com Harbour

Mensagem por Maligno »

Quanto à lista não sei responder. Mas no desespero à procura de alguma função, você poderia simplesmente tirar uma listagem dos módulos. O TLINK traz esse recurso. É só executá-lo em linha de comando sem argumentos que a sintaxe aparece. Depois é só ler o TXT que ele devolve. A listagem sai por módulos e o conteúdo de cada módulo. Interessante lembrar, pra quem não sabe: sempre que uma função é incluída no executável, é o módulo (inteiro) que é ligado ao programa. Mesmo que ele contenha dezenas de funções.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
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 Maligno.

Eu imagino que você queria sugerir o TLIB.exe em vez de TLINK.exe.

Bem, eu testei o LIB.exe, o LIBRA.exe e o TLIB.exe, mas nenhum deles abre estas lib's do xHarbour/Harbour. A não ser que eu esteja usando estes aplicativos de forma incorreta. Sempre reporta erro.

No tempo do Clipper eu usava muito o LIB.exe para criar as minhas lib's, como também para listar as funções nelas contidas.

Será que estes aplicativos são somente para uso com lib's compiladas com o Clipper ? É o que está me parecendo.
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 tarde colegas.

Estou com mais um problema:

A compilação com o Harbour x msvc está funcionando muito bem no meu DeskTop. Instalei no meu NoteBook e não tem jeito de funcionar. Já estou batalhando uns 5 dias e nada.

É o seguinte:
1-Não sei se é o culpado, mas a sintaxe do path não funciona da maneira tradicional extendida. Só funciona no formato DOS, o seja, como exemplo:
C:\Arquiv~1\Micros~4\VC\lib, etc...
2-A pasta Microsoft Visual Studio 9.0 não é reconhecida por causa do ponto entre 9 e 0. Precisei retirar o ponto de deixar como 90.
3-O Windos XP das 2 máquinas é o mesmo.
4-A compilação reporta erro (a lista é bastante grande e só postei pequena parte dela):

Código: Selecionar todos

hbmk2: Processando arquivo de configura‡Æo: C:\Harbour_vc\bin\hbmk.cfg         
hbmk2: Linkando... Fio400h.exe                                                 
LIBCMT.lib(a_str.obj) : error LNK2001: unresolved external symbol __imp__MultiByteToWideChar@24
LIBCMT.lib(a_cmp.obj) : error LNK2001: unresolved external symbol __imp__MultiByteToWideChar@24
LIBCMT.lib(convrtcp.obj) : error LNK2001: unresolved external symbol __imp__MultiByteToWideChar@24
LIBCMT.lib(read.obj) : error LNK2001: unresolved external symbol __imp__MultiByteToWideChar@24
HBWin.lib(olecore.obj) : error LNK2019: unresolved external symbol __imp__MultiByteToWideChar@24 referenced in function "wchar_t * __cdecl AnsiToWide(char const *)" (?AnsiToWide@@YAPA_WPBD@Z)
hbcommon.lib(hbwince.obj) : error LNK2001: unresolved external symbol __imp__MultiByteToWideChar@24
que suponho seja a falta de várias lib's.

Acredito que em virtude destas alterações feitas nas pastas e path's, algum path não esteja apontando para a pasta adequada.

Parece-me que a LIBCMT.lib(a_str) esteja buscando a variável __imp__MultiByteToWideChar@24 e não encontra. Esta linha é só como exemplo.

Então fica a pergunta: Provavelmente o problema da sintaxe do Path depende de alguma configuração do Windows. Qual seria ?
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)
Responder