Ayuda para pasar de FWH a FWH64

Ayuda para pasar de FWH a FWH64

Postby jose_murugosa » Wed Jan 07, 2015 11:20 am

Hola a todos,

Comienzo a intentar convertirme a FWH64, tendrá desafíos porque vengo de FWH32 con xHarbour y Borland C, y no hay xHarbour para 64 bits de modo que tendré que pasarme a harbour, y debo pasar de Borland C para Microsoft C del paquete Visual Studio 2013 Express.

Espero poder afrontar este desafío y superarlo, y contar con la ayuda de Uds. en el proceso, ya que surgirán muchas consultas.

Estoy comenzando a ver lo que se ha escrito por otros que siguieron este camino.

Espero sean pacientes y sepan disculpar mucha ignorancia en cuanto a FWH64.

Quería hacer una consulta inicial:

He podido compilar los ejemplos exitosamente....
Existe algun programa como xmate o VerCE para FWH64?
Algún batch para compilar proyectos de muchos archivos?

Agradezco desde ya vuestra ayuda de siempre
Saludos/Regards,
José Murugosa
"Los errores en programación, siempre están entre la silla y el teclado y la IA!!"
User avatar
jose_murugosa
 
Posts: 1180
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay

Re: Ayuda para pasar de FWH a FWH64

Postby cnavarro » Wed Jan 07, 2015 11:26 am

Mira, ojo con la version que utilizas

viewtopic.php?f=6&t=29861&start=30#p169990
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6541
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Ayuda para pasar de FWH a FWH64

Postby jose_murugosa » Wed Jan 07, 2015 11:36 am

Muchas gracias Cristóbal,
Ya estoy descargando Visual Studio 2013 Comunity Edition. :)
Saludos/Regards,
José Murugosa
"Los errores en programación, siempre están entre la silla y el teclado y la IA!!"
User avatar
jose_murugosa
 
Posts: 1180
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay

Re: Ayuda para pasar de FWH a FWH64

Postby jose_murugosa » Wed Jan 07, 2015 3:34 pm

Estoy usando ya la versión correcta de Visual Studio
jose_murugosa wrote:He podido compilar los ejemplos exitosamente....
Existe algun programa como xmate o VerCE para FWH64?
Algún batch para compilar proyectos de muchos archivos?

Es cierto que FastReport no puede utilizarse con FWH 64 bits?

Gracias por vuestra ayuda :)
Saludos/Regards,
José Murugosa
"Los errores en programación, siempre están entre la silla y el teclado y la IA!!"
User avatar
jose_murugosa
 
Posts: 1180
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay

Re: Ayuda para pasar de FWH a FWH64

Postby jose_murugosa » Thu Jan 08, 2015 8:41 am

Existe algun programa como xmate o VerCE para FWH64?
Algún batch para compilar proyectos de muchos archivos?
FastReport no puede utilizarse con FWH 64 bits?

??


Gracias por vuestra ayuda
Saludos/Regards,
José Murugosa
"Los errores en programación, siempre están entre la silla y el teclado y la IA!!"
User avatar
jose_murugosa
 
Posts: 1180
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay

Re: Ayuda para pasar de FWH a FWH64

Postby Verhoven » Thu Jan 08, 2015 1:09 pm

Hola José,
Como puedes ver por varios hilos que he arrancado en el último mes estamos intentando pasar también a 64 bits.
Primero fue pasar de xHarbour a Harbour en 32 bits.
Después estamos intentando conseguir construir las aplicaciones en 64 bits.
Hay que hacer algunos cambios, sobre todo, si las versiones de de FW y xHarbour eran antigüas como era nuestro caso.

Ya hemos conseguido el paso a Harbour 32 bits, que con la ayuda de Antonio y otros del foro, ha sido muy rápida.

En cuanto a la construcción para 64 bits aun quedan algunas cuestiones que estamos intentando resolver, pues de las dos aplicaciones más grandes en una no ha habido problemas (a falta de probar en detalle la aplicación en producción) y de la otra no conseguimos que al salir de la aplicación en 64 bits no se quede colgada. Pero si no fuera por esto está prácticamente terminado el proceso.

Para la construcción en 64 bits estamos usando el W7 con el SP1 instalado; si no lo tienes no te deja instalar el vs_community 2013.

Luego, usamos el batch que trae en samples FWH. Con algunas modificaciones específicas que necesitamos nostros para unas rutinas en C para inet que tuvimos que desarrollar en su momento. En concreto para el uso de las librerías wininet.lib y ws2_32.lib y otra para comunicaciones RS232 la hbcomm.lib.

VSC 2013 te va a lanzar un montón de warnings si usas código con funciones standard de C. Esto lo puedes eliminar agragando a tu prg lo siguiente:
Code: Select all  Expand view
//Elimina los Warning por el uso de funciones WinSock en código C cuando se usa el compilador
// de Microsoft Visual Studio Comunity 2013.
// Versión 1.0 de 05/01/2015
#define _WINSOCK_DEPRECATED_NO_WARNINGS

//Elimina los Warning por el uso de funciones standard de C cuando se usa el compilador
// de Microsoft Visual Studio Comunity 2013.
// Versión 1.0 de 05/01/2015
#pragma warning(disable: 4996)


O, como recomienda Antonio, usando funciones equivalentes a esas standard de C propias de harbour. Pero creo que si no te han fallado las que venías usando en C, salvo mejor opinión, puedes seguir usando las standard de C, al menos hasta que hayas conseguido montar la aplicación en 64 bits. Luego ya podremos ir perfeccionando, salvo que lo quieras hacer todo a la vez.

Y ahora el enrevesado procedimiento para pasar los recursos de los .RC generados con el WorkShop 4.5 de Borland de forma que se puedan usar con el compilador de VSC2013 tuvimos primero que importarlos con el Pelles C. Grabar el .RC que además genera unos ficheritos por cada imagen e icono, Renombrar esos ficheros a nuestro gusto. Modificar a mano en el .RC creado por Pelles C para que se ajusten las referencias a esos nombres de ficheros a nuestro gusto. Abrir ahora el .RC con VSC2013 y darle a grabar. Ojo con los manifest porque los tendrás que cambiar a mano en el VSC2013, copio código para que te pueda servir el mismo RC para 32 y 64 bits:

Code: Select all  Expand view
#ifdef __64__
1 24 "C:\\fwh64\\samples\\winxp\\WindowsXP.Manifest64"
#else
//1 MANIFEST "C:\\CLIWIN\\FW\\winxp.man"
1 MANIFEST "C:\\fwh64\\samples\\winxp\\WindowsXP.Manifest"
#endif
 


Ahora te copio en batch que utilizamos que te puede servir con tus adaptaciones específicas:
Code: Select all  Expand view
@ECHO OFF
CLS
ECHO ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
ECHO ³ FWH 64 for Harbour 14.07 (MSVC++) Jul.2014       Harbour development power ³Ü
ECHO ³ (c) FiveTech, 1993-2014   for Microsoft Windows 9X/NT/200X/ME/XP/Vista/7/8 ³Û
ECHO ³                                                                            ³Û
ECHO ³                      Modificación Verhoven 08/01/2015                      ³Û
ECHO ³                  Visual Studio Comunity 2013 para 64 Bits                  ³Û
ECHO ³     Incluye llamada al Browse de Hernan compilado también para 64 Bits.    ³Û
ECHO ³                                                                            ³Û
ECHO ³     Carpetas de la instalación para que funcione este bat:                 ³Û
ECHO ³             FWH 64:      C:\FWH64                                          ³Û
ECHO ³             Harbour 64:  C:\harbour                                        ³Û
ECHO ³             VSC 2013:    En la que instala por defecto                     ³Û
ECHO ³                                                                            ³Û
ECHO ³     Ejemplo de llamada al bat: build64 miprog                              ³Û
ECHO ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙÛ
ECHO ÿ ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß

if A%1 == A GOTO :SINTAX
if NOT EXIST %1.prg GOTO :NOEXIST

@set oldpath=%path%
@set oldinclude=%include%
@set oldlib=%lib%
@set oldlibpath=%libpath%
if exist "%ProgramFiles%\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" call "%ProgramFiles%\Microsoft

Visual Studio 12.0\VC\vcvarsall.bat"
x86_amd64
if exist "%ProgramFiles(x86)%\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" call "%ProgramFiles

(x86)%\Microsoft Visual Studio 12.0\VC\vcvarsall.bat"
x86_amd64
rem if "%FWDIR%" == "" set FWDIR=.\..
if "%FWDIR%" == "" set FWDIR=C:\FWH64
if "%HBDIR%" == "" set HBDIR=c:\harbour

ECHO Compiling...

set hdir=%HBDIR%
rem set hdirl=%hdir%\lib\vc64
set hdirl=%hdir%\lib

%hdir%\bin\harbour %1 /n /i%fwdir%\include;%hdir%\include /p /d__64__ %2 %3 > comp.log 2> warnings.log
IF ERRORLEVEL 1 GOTO COMPILEERROR
@type comp.log
@type warnings.log

cl -TC -W3 -O2 -c -I%hdir%\include %1.c
:ENDCOMPILE

IF EXIST %1.rc rc -r -D__64__ %1

echo %1.obj  > msvc.tmp

rem TBROWSE DE HERNAN:
rem ­ Hay que poner delante las que sustituyen a las de FW, o mejor dicho
rem    el enlazador pone en el exe las que primero encuentra !
echo C:\CLIWIN\TBROWSE17b\LIB\TWBRWX64_H.lib >> msvc.tmp


echo %fwdir%\lib\FiveH64.lib %fwdir%\lib\FiveHC64.lib  >> msvc.tmp

echo %hdirl%\hbrtl.lib  >> msvc.tmp
echo %hdirl%\hbvm.lib  >> msvc.tmp
echo %hdirl%\gtgui.lib  >> msvc.tmp
echo %hdirl%\hblang.lib  >> msvc.tmp
echo %hdirl%\hbmacro.lib  >> msvc.tmp
echo %hdirl%\hbrdd.lib  >> msvc.tmp
echo %hdirl%\rddntx.lib  >> msvc.tmp
echo %hdirl%\rddcdx.lib  >> msvc.tmp
echo %hdirl%\rddfpt.lib  >> msvc.tmp
echo %hdirl%\hbsix.lib  >> msvc.tmp
echo %hdirl%\hbdebug.lib  >> msvc.tmp
echo %hdirl%\hbcommon.lib  >> msvc.tmp
echo %hdirl%\hbpp.lib  >> msvc.tmp
echo %hdirl%\hbcpage.lib  >> msvc.tmp
echo %hdirl%\hbwin.lib  >> msvc.tmp
echo %hdirl%\hbct.lib  >> msvc.tmp
echo %hdirl%\hbziparc.lib >> msvc.tmp
echo %hdirl%\hbmzip.lib >> msvc.tmp
echo %hdirl%\hbzlib.lib >> msvc.tmp
echo %hdirl%\hbpcre.lib >> msvc.tmp
echo %hdirl%\minizip.lib >> msvc.tmp
echo %hdirl%\xhb.lib >> msvc.tmp
echo %hdirl%\hbcplr.lib >> msvc.tmp
echo %hdirl%\png.lib >> msvc.tmp

echo %hdir%\lib\hbcomm.lib >> msvc.tmp

rem Uncomment these two lines to use Advantage RDD
rem echo %hdirl%\rddads.lib >> msvc.tmp
rem echo %hdirl%\ace32.lib >> msvc.tmp

echo kernel32.lib  >> msvc.tmp
echo user32.lib    >> msvc.tmp
echo gdi32.lib     >> msvc.tmp
echo winspool.lib  >> msvc.tmp
echo comctl32.lib  >> msvc.tmp
echo comdlg32.lib  >> msvc.tmp
echo advapi32.lib  >> msvc.tmp
echo shell32.lib   >> msvc.tmp
echo ole32.lib     >> msvc.tmp
echo oleaut32.lib  >> msvc.tmp
echo uuid.lib      >> msvc.tmp
echo odbc32.lib    >> msvc.tmp
echo odbccp32.lib  >> msvc.tmp
echo iphlpapi.lib  >> msvc.tmp
echo mpr.lib       >> msvc.tmp
echo version.lib   >> msvc.tmp
echo wsock32.lib   >> msvc.tmp
echo msimg32.lib   >> msvc.tmp
echo oledlg.lib    >> msvc.tmp
echo psapi.lib     >> msvc.tmp
echo gdiplus.lib   >> msvc.tmp
echo winmm.lib     >> msvc.tmp

echo wininet.lib  >> msvc.tmp
echo ws2_32.lib  >> msvc.tmp

rem echo %ProgramFiles%(x86)\Microsoft SDKs\Windows\v7.1A\Lib\x64\wininet.lib  >> msvc.tmp
rem echo %ProgramFiles%(x86)\Microsoft SDKs\Windows\v7.1A\Lib\x64\ws2_32.lib  >> msvc.tmp

IF EXIST %1.res echo %1.res >> msvc.tmp

rem link @msvc.tmp /nologo /subsystem:windows /force:multiple /NODEFAULTLIB:libc
link @msvc.tmp /nologo /subsystem:windows /NODEFAULTLIB:libc

IF ERRORLEVEL 1 GOTO LINKERROR
ECHO * Application successfully built *
@set path=%oldpath%
@set include=%oldinclude%
@set lib=%oldlib%
@set libpath=%oldlibpath%
@set oldpath=""
@set oldinclude=""
@set oldlib=
@set oldlibpath=

rem delete temporary files
@del %1.c
@del %1.obj
@del %1.ppo
@del msvc.tmp
@del comp.log
@del warnings.log
%1
GOTO EXIT
ECHO

:COMPILEERROR
@type comp.log
ECHO * Compiling errors *
GOTO EXIT

:LINKERROR
ECHO * Linking errors *
GOTO EXIT

:SINTAX
ECHO    SYNTAX: Build [Program]     {-- No especifiques la extensi¢n PRG
ECHO                                {-- Don't specify .PRG extension
GOTO EXIT

:NOEXIST
ECHO The specified PRG %1 does not exist

:EXIT


Saludos.
Verhoven
 
Posts: 520
Joined: Sun Oct 09, 2005 7:23 pm

Re: Ayuda para pasar de FWH a FWH64

Postby jose_murugosa » Thu Jan 08, 2015 3:21 pm

Verhoven, Muchísimas gracias!!!!

Valoro mucho el tiempo que te has tomado para brindarme toda esta información, la revisaré cuidadosamente y pondré en práctica, y si hay dudas publicaré aquí.

Realmente aprecio muchísimo tu ayuda!!! :)
Saludos/Regards,
José Murugosa
"Los errores en programación, siempre están entre la silla y el teclado y la IA!!"
User avatar
jose_murugosa
 
Posts: 1180
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 41 guests