Page 1 of 2

Cambiar a Harbour y MSVC

PostPosted: Thu Dec 01, 2011 10:56 am
by fgondi
Estimados amigos,

Estoy intentado migrar mis aplicaciones hechas en xharbour y bcc582 a Harbour y Microsoft Visual C++ Express 2010.

y no sé ni que tengo que tener montado en el equipo.

Harbour3 para MSVC -> "C:\Harbour"

MSVC -> "C:\Program Files (x86)\Microsoft Visual Studio 10.0" y "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A"

en el archivo buildhm.bat de fwh 11.11 usa la carpeta C:\VC98 ¿Que es estó?
También me he encontrado en el foro un archivo distinto:
http://forums.fivetechsupport.com/viewtopic.php?f=6&t=22592&p=120605&hilit=xharbour+o+harbour#p120526
¿Cual hay que usar?

Ya no se que carpetas tengo que tener y que continene cada una.

Re: Cambiar a Harbour y MSVC

PostPosted: Thu Dec 01, 2011 11:27 am
by Antonio Linares
Fernando,

El fichero de construcción en FWH samples es buildh32.bat (MSVC 2010 Express)

Prueba desde samples:

buildh32.bat tutor01

Las librerias que se usan son FiveH32.lib y FiveHC32.lib

Re: Cambiar a Harbour y MSVC

PostPosted: Thu Dec 01, 2011 12:22 pm
by fgondi
He descargado Harbour3 de la siguiente dirección
http://code.google.com/p/harbour-and-xharbour-builds/downloads/detail?name=Harbour-3.1.0-MSVC-Express.zip&can=2&q=

Dentro de la carpeta Harbour\lib no existe la carperta vc32 a la que se hace referencia en buildh32.bat
set hdirl=%hdir%\lib\vc32

Re: Cambiar a Harbour y MSVC

PostPosted: Thu Dec 01, 2011 12:39 pm
by fgondi
He visto que las librerias que busca en harbour\lib\VC32 están en harbour\lib.

¿Son esas las que hay que usar?, si son esas ¿porqué buildh32.bat apunta a la carpeta VC32?

si reemplazado en buildh32.bat %hdir%\lib\vc32 por %hdir%\lib da otros errores:
Code: Select all  Expand view
┌────────────────────────────────────────────────────────────────────────────┐
│ FiveWin for Harbour 11.11 (MSVC++) Nov. 2011     Harbour development power │▄
(c) FiveTech, 1993-2011     for Microsoft Windows 9X/NT/200X/ME/XP/Vista/7 │█
└────────────────────────────────────────────────────────────────────────────┘█
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Compiling...
Harbour 3.1.0dev (Rev. 17025)
Copyright (c) 1999-2011, http://harbour-project.org/
Compiling 'tutor01.prg' and generating preprocessed output to 'tutor01.ppo'...
Lines 3848, Functions/Procedures 2
Generating C source output to 'tutor01.c'... Done.
Compilador de optimización de C/C++ de 32 bits de Microsoft (R) versión 16.00.30
319.01 para 80x86
(C) Microsoft Corporation. Reservados todos los derechos.

tutor01.c
El sistema no puede encontrar la ruta especificada.
   Creando biblioteca tutor01.lib y objeto tutor01.exp
FiveH32.lib(TMETAFIL.obj) : error LNK2001: símbolo externo _HB_FUN_FREELIBRARY sin resolver
FiveH32.lib(INI.obj) : error LNK2001: símbolo externo _HB_FUN_FREELIBRARY sin resolver
FiveH32.lib(SHELLAPI.obj) : error LNK2001: símbolo externo _HB_FUN_FREELIBRARY sin resolver
FiveH32.lib(WINDOW.obj) : error LNK2001: símbolo externo _HB_FUN_FREELIBRARY sin resolver
FiveH32.lib(HELP32.obj) : error LNK2001: símbolo externo _HB_FUN_FREELIBRARY sin resolver
FiveH32.lib(IMAGE.obj) : error LNK2001: símbolo externo _HB_FUN_FREELIBRARY sinresolver
FiveH32.lib(PRV2PDF.obj) : error LNK2001: símbolo externo _HB_FUN_FREELIBRARY sin resolver
FiveH32.lib(DIALOG.obj) : error LNK2001: símbolo externo _HB_FUN_FREELIBRARY sin resolver
FiveH32.lib(HARBOUR.obj) : error LNK2019: símbolo externo _HB_FUN_FREELIBRARY sin resolver al que se hace referencia en la función _HB_FUN_OLEGETPROPERTY
FiveH32.lib(GETTASKS.obj) : error LNK2001: símbolo externo _HB_FUN_FREELIBRARY sin resolver
FiveH32.lib(FILENAME.obj) : error LNK2001: símbolo externo _HB_FUN_FREELIBRARY sin resolver
FiveH32.lib(TMETAFIL.obj) : error LNK2001: símbolo externo _HB_FUN_LOADLIBRARY sin resolver
FiveH32.lib(INI.obj) : error LNK2001: símbolo externo _HB_FUN_LOADLIBRARY sin resolver
FiveH32.lib(SHELLAPI.obj) : error LNK2001: símbolo externo _HB_FUN_LOADLIBRARY sin resolver
FiveH32.lib(WINDOW.obj) : error LNK2001: símbolo externo _HB_FUN_LOADLIBRARY sin resolver
FiveH32.lib(HELP32.obj) : error LNK2001: símbolo externo _HB_FUN_LOADLIBRARY sin resolver
FiveH32.lib(IMAGE.obj) : error LNK2001: símbolo externo _HB_FUN_LOADLIBRARY sin resolver
FiveH32.lib(PRV2PDF.obj) : error LNK2001: símbolo externo _HB_FUN_LOADLIBRARY sin resolver
FiveH32.lib(DIALOG.obj) : error LNK2001: símbolo externo _HB_FUN_LOADLIBRARY sin resolver
FiveH32.lib(HARBOUR.obj) : error LNK2001: símbolo externo _HB_FUN_LOADLIBRARY sin resolver
FiveH32.lib(GETTASKS.obj) : error LNK2001: símbolo externo _HB_FUN_LOADLIBRARY sin resolver
FiveH32.lib(FILENAME.obj) : error LNK2019: símbolo externo _HB_FUN_LOADLIBRARY sin resolver al que se hace referencia en la función _HB_FUN_CFILESUBDIR
tutor01.exe : fatal error LNK1120: 2 externos sin resolver
* Linking errors *

Re: Cambiar a Harbour y MSVC

PostPosted: Thu Dec 01, 2011 1:29 pm
by Antonio Linares
Fernando,

Yo uso las subcarpetas vc32, vc64, vc98, etc... dentro de c:|harbour|lib para alojar librerias de Harbour para otras versiones de compiladores de C, asi puedo tener c:|harbour|bin e include los mismos para todas las versiones, y dentro de lib, por defecto para Borland, vc32 para MSVC2010, vc64 para 64 bits, etc...

Estás enlazando hbwin.lib ?

Re: Cambiar a Harbour y MSVC

PostPosted: Thu Dec 01, 2011 1:52 pm
by fgondi
Antonio,

Lo único que ejecuto es buildh32.bat tutor01

y dentro del bat si aparace hbwin.lib

Re: Cambiar a Harbour y MSVC

PostPosted: Thu Dec 01, 2011 1:59 pm
by Antonio Linares
Fernando,

Si usas Total Commander ó UEStudio, haz "view" de FiveH32.lib y busca dentro "LoadLibrary" y debe aparecerte: _HB_FUN_LOADLIBRARY

Has modificado buildh32.bat ?

Re: Cambiar a Harbour y MSVC

PostPosted: Thu Dec 01, 2011 2:12 pm
by fgondi
Antonio,

No, el único cambio que he realizado en buildh32 es quitar vc32.

Por si acaso que borrado toda la carpeta FWH y he vuelto a ejecutar el instalador 11.11 de 30 de septiembre.

Y sigue mostrando los mismos errores.

Re: Cambiar a Harbour y MSVC

PostPosted: Thu Dec 01, 2011 3:35 pm
by Antonio Linares
Fernando,

Te envio las librerias por email, gracias :-)

Re: Cambiar a Harbour y MSVC

PostPosted: Thu Dec 01, 2011 3:39 pm
by fgondi
Antonio,

Gracias. Una vez las reciba, pruebo y te cuento

en el archivo buildh32.bat se llama a "c:\vc98\bin\rc" para incluir el archivo rc correspondiente.
¿A donde lo tengo que cambiar?

Re: Cambiar a Harbour y MSVC

PostPosted: Thu Dec 01, 2011 3:47 pm
by fgondi
Antonio,

Ya he conseguio ejecutar tutor01.

Sigo haciendo pruebas con otros ejemplos.

De todas formas. ¿Cómo es posible que haya necesitado actualizar las liberias?
¿Qué es lo usa la mayoria de la gente (sobre todo que usáis vosotros) para compilar y linkar?

El motivo de migrar de xHarbour a Harbour y MSVC es porque me daba la sensación que era lo mas utilizado

Re: Cambiar a Harbour y MSVC

PostPosted: Thu Dec 01, 2011 5:29 pm
by Antonio Linares
Fernando,

Esta es la línea correcta dentro de buildh32.bat para llamar al rc.exe:

IF EXIST %1.rc %sdkdir%\bin\rc.exe -r -d__FLAT__ -I%sdkdir%\include %1

Ayer publicamos una versión revisada de FWH 11.11 y faltó compilar un módulo para MSVC 2010.

En la actualidad creemos que el compilador más usado es Borland, aunque hay usuarios que estan intentando migrar a MinGW y otros se decantan por MSVC 2010. Nosotros probamos y construimos con todos ellos, es la única forma de ofrecer auténtica compatibilidad :-)

Re: Cambiar a Harbour y MSVC

PostPosted: Thu Dec 01, 2011 5:34 pm
by fgondi
Antonio,

Muchas gracias, funcionando correctamente.

Y la pregunta del millón. ¿Cuál recomiendas?.
Me imagino que vosotros tendreís alguna aplicación hecha con fwh, ¿Cuál usais?.

Re: Cambiar a Harbour y MSVC

PostPosted: Thu Dec 01, 2011 5:48 pm
by Antonio Linares
Fernando,

Nosotros recomendamos MSVC sobre todo si hay intenciones de publicar una versión de 64 bits de vuestras aplicaciones, ya que no hay una versión de 64 bits de Borland (que sepamos), y sobre todo porque quien mejor que Microsoft para construir el compilador de C que mejor se adapte a las distintas versiones de Windows ? :-)

Y ademas el MSVC 2010 Express es gratis...

Normalmente construimos en 32 con Borland y en 64 con Microsoft ya que asi nos sirve para probar con ambos fabricantes. Y ultimamente tambien con MinGW. En fin, con todos ellos :-)

Re: Cambiar a Harbour y MSVC

PostPosted: Thu Dec 01, 2011 6:02 pm
by fgondi
Antonio,
Muchas gracias por tu ayuda.

Seguiré probando con Harbour y MSVC.

Por cierto, Actualmente para crear los recursos uso Pelles C.
¿Esto generará problemas?, ¿debo cambiar de editor de recursos?, Si debo cambiar ¿a cual?