Page 2 of 6

Re: Migrando de FWH 32 a FWH 64 - windows.h

PostPosted: Wed Dec 24, 2014 5:08 pm
by Antonio Linares
Paz,

Tienes que usar:

1 24 "WinXP/WindowsXP.Manifest64"

ojo que no es el mismo fichero que para 32 bits

Re: Migrando de FWH 32 a FWH 64 - windows.h

PostPosted: Wed Dec 24, 2014 5:10 pm
by Antonio Linares
Esas definiciones de BITMAP son propias de Borland.

Teneis que cambiar esas líneas por su equivalente:

Crcla BITMAP "Crcla.bmp"

Re: Migrando de FWH 32 a FWH 64 - windows.h

PostPosted: Wed Dec 24, 2014 5:14 pm
by Antonio Linares
Si pruebas a hacer desde FWH\samples:

build64.bat juan

verás que se construye bien y usa el mismo formato de GROUPBOX.

Prueba a cambiar

IDC_GROUPBOX44

por -1

Re: Migrando de FWH 32 a FWH 64 - windows.h

PostPosted: Sat Dec 27, 2014 11:40 am
by Verhoven
Antonio,
Como en 64 Bits hay que compilar con MSVC++ y nos da algunos errores que creo que tienen que ver con las librerias para inet, estamos intentando primero compilar en 32 bits con MSVC++ en vez de con BCC582 para ir depurando el proceso y tener un solo compilador para 32 bis y 64 bits.
Para ellos hemos instalado MSVC++10.0, hemos adaptado el .bat que viene en samples pero al intentar compilar y lincar nos dice que c:\harbour\lib\hbrtl.lib: fatal error lnk1136: Archivo no válido o dañado.
¿Se puede compilar y enlazar con MSVC++10.0 y Harbour + FWH de diciembre?.

Copio la modificación del .bat para generar la aplicación:
Code: Select all  Expand view
@ECHO OFF
CLS
ECHO ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
ECHO ³ FiveWin for Harbour 14.12(MSVC++ 10.0) Dec. 2014 Harbour development power ³Ü
ECHO ³ (c) FiveTech, 1993-2014   for Microsoft Windows 9X/NT/200X/ME/XP/Vista/7/8 ³Û
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 10.0\VC\vcvarsall.bat" call "%ProgramFiles%\Microsoft

Visual Studio 10.0\VC\vcvarsall.bat"

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

(x86)%\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"


if "%FWDIR%" == "" set FWDIR=.\..
if "%HBDIR%" == "" set HBDIR=c:\harbour

ECHO Compiling...

@set fwh=%FWDIR%
@set hdir=%HBDIR%
@set hdirl=%hdir%\lib

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

"%VCINSTALLDIR%"bin\cl -TP -W3 -c /GS- /I%hdir%\include /GA %1.c
:ENDCOMPILE

IF EXIST %1.rc IF EXIST "%VCINSTALLDIR%"bin\rc "%VCINSTALLDIR%"bin\rc -r -d__FLAT__ %1
IF EXIST %1.rc IF NOT EXIST %1.res rc -r -d__FLAT__ %1

echo %1.obj  > msvc.tmp

echo %fwh%\lib\FiveH32.lib %fwh%\lib\FiveHC32.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%\hbcplr.lib  >> msvc.tmp
echo %hdirl%\hbpcre.lib >> msvc.tmp
echo %hdirl%\hbct.lib  >> msvc.tmp
echo %hdirl%\xhb.lib  >> msvc.tmp
echo %hdirl%\png.lib  >> msvc.tmp
echo %hdirl%\hbzlib.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

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

"%VCINSTALLDIR%"bin\link @msvc.tmp /nologo /subsystem:windows /NODEFAULTLIB:msvcrt

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=""
%1
GOTO EXIT
ECHO

rem delete temporary files
@del %1.c
@del msvc.tmp

:COMPILEERROR
@type comp.log
@type warnings.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

Re: Migrando de FWH 32 a FWH 64 - windows.h

PostPosted: Sun Dec 28, 2014 10:00 am
by Antonio Linares
Paz,

c:\harbour\lib\hbrtl.lib es para Borland ó para MSVC ?

No son compatibles y tienes que instalar las librerias correctas:

https://bitbucket.org/fivetech/harbour-xharbour-builds/downloads/harbour_3.2_32bits_VSC_20141218.zip

Esas librerías estan construidas con VSC (Visual Studio Community) asi que deberías usar VSC en vez de MSVC++10.0

Por que quereis usar esa versión ya tan antigua ?

Re: Migrando de FWH 32 a FWH 64 - windows.h

PostPosted: Sun Dec 28, 2014 11:53 am
by Verhoven
Antonio,
La cuestión es que tenemos las aplicaciones corriendo tanto en ordenadores con XP a 32 bits como con ordenadores con W7 (con las aplicaciones corriendo también a 32 bits aunque los W7 sean de 64 bits). Todas Compiladas con Borland 282 + xHarbour.

La semana pasada las hemos pasado a Harbour, la verdad que mucho más rápido de los esperado porque realmente el tiempo invertido para el paso a Harbour no nos ha llevado más de 8 o 10 horas de trabajo efectivo. (Cuando tengamos comprobado del todo que las aplicaciones van bien y no hacen falta más adaptaciones, tengo intención de recopilar los cambios en un post y ponerlo a disposición de todos).
De modo que, ahora mismo, ya estamos en FWH Dic 2014 + Harbour Dic 2014 + BCC582 y solo pendientes de conseguir el paso a los 64 bits con la versión de FWH 14.7 (rev 2). Para lo cual es necesario compilar con MSVC.

Community no se instala ni en XP ni en W7 (aunque W7 sea de 64 bits) con lo que no lo podemos probar. No tenemos ninguna instalación en W8 ni W8.1 porque no las quieren instalar los usuarios y lo entiendo porque la gente no quiere invertir tiempo y recursos en esos cambios cuando con el W7 ya les va muy bien.

En consecuencia, para intentar compilar en 64 bits, como hay que hacerlo necesariamente con Visual Studio, y dado que Community no se instala tenemos que intentarlo con MSVC++ 12.0 con update 4 y además que la compilación pueda generar los exe tanto para 32 bits como para 64 bits.

Lo de instalar el MSVC 10 era para intentar conseguir compilar en versiones de MSVC anteriores e ir tratando de adaptarnos a las nuevas. Pero no hay forma porque las versiones que tenemos de Harbour son para Community y no para MSVC 12.0 ni para MSVC 10.0 y dan errores en el link.

Re: Migrando de FWH 32 a FWH 64 - windows.h

PostPosted: Sun Dec 28, 2014 1:52 pm
by Antonio Linares
Paz,

Podeis instalar el Visual Studio Express 2013 que es totalmente compatible y que debería instalarse sin problema en todas las versiones de Windows :-)

http://www.visualstudio.com/en-us/products/visual-studio-express-vs.aspx

En base a mis pruebas, es totalmente compatible con VSC, por lo que os debería funcionar bien :-)

Re: Migrando de FWH 32 a FWH 64 - windows.h

PostPosted: Sun Dec 28, 2014 6:12 pm
by Verhoven
Antonio,

En XP no se instala. He descargado el exe que se obtiene pulsando en el botón de la página web que indicas, en concreto en el que dice:
Image
que descarga el archivo vs_community.exe de 1,2MB (que será un instalador) pero al arrancar se para diciendo que se necesita una versión más reciente de windows.

Más tarde lo intentaré en un equipo con W7 ultimate 64 bits a ver si deja instalarlo, porque el que se obtiene pinchando en esa misma web en el botón:
Image no nos ha dejado instalarlo en ese mismo ordenador con W7 64bits ultimate.

Re: Migrando de FWH 32 a FWH 64 - windows.h

PostPosted: Mon Dec 29, 2014 7:17 pm
by Verhoven
Hemos intentado instalar vs_community en W7 Ultimate 64 bits y tampoco deja instalarlo porque dice que necesita un sistema operativo más nuevo.

http://www.visualstudio.com/products/visual-studio-2013-compatibility-vs

Creo que como no se pueda hacer con MSVC++ 2012 no va a haber forma de probar a pasar de 32 bits a 64 como no sea instalando el W8.

Re: Migrando de FWH 32 a FWH 64 - windows.h

PostPosted: Mon Dec 29, 2014 7:57 pm
by gmart1
Hola, comprueba si tienes instalado el service pack 1 de windows 7, a mi no me lo permitía instalar en un Siete Profesional hasta que lo actualicé.
La versión que tengo instalada es la Visual Studio Express 2013 y he conseguido crear un ejecutable de mi programa con FWH64 14.02.
Un saludo.

Re: Migrando de FWH 32 a FWH 64 - windows.h

PostPosted: Mon Dec 29, 2014 7:59 pm
by Antonio Linares
Paz,

te agradezco si intentas con el MSVC++ 2012.

Asi sabremos si Microsoft ya está en plan Apple forzando a la gente a migrar...

No estoy para nada de acuerdo con esa política de obligar a los usuarios a cambiar de versión de sistema operativo

Pero bueno, es lo que hay y es bueno conocer las restricciones que han puesto.

Gracias por tu valiosa información :-)

Re: Migrando de FWH 32 a FWH 64 - windows.h

PostPosted: Tue Dec 30, 2014 5:51 pm
by Verhoven
Antonio,
Para conseguir instalar el Visual Studio Community he tenido que instalar en Windows 7 Ultimate 64 Bits el SP1.
Se descarga del propio Microsoft:
http://www.microsoft.com/es-es/download/details.aspx?id=5842
y descargar el firchero: windows6.1-KB976932-X64.exe
En cuanto tenga un rato me pongo a intentar la compilación de las aplicaciones.

Re: Migrando de FWH 32 a FWH 64 - windows.h

PostPosted: Tue Dec 30, 2014 6:04 pm
by Antonio Linares
Paz,

Muy bien! :-)

Gracias por tus indicaciones

Re: Migrando de FWH 32 a FWH 64 - windows.h

PostPosted: Thu Jan 01, 2015 10:36 pm
by Verhoven
Antonio,
La solución para la instalación de community en W7 comentada en mi último post no funciona en ordenadores con la versión Home aunque tengan instalado el SP1.
Hay que tener en cuenta que una gran cantidad de equipos vienen con esa versión instalada pues lo traen instalado de fábrica, como los portátiles.
Debido a esto no puedo probar a generar la aplicación en 64 bits con Community. :evil:

Para probar a generar la aplicación en 64 bits con MSVC 2012 necesito saber si puedo utilizar la versión de FWH-64 que tengo de mayo del 2014 (que creo que está construida para Community) o si por el contrario es necesario tener construida FWH 64 para esa versión de MSVC 2012.

Y también, si en todo caso, por no depender de las veleidades de MSVC, es posible generar la aplicación en 64 bits con el compilador gcc o algún otro. Teniendo en cuenta que necesitamos usar las librerías wininet.lib y ws2_32.lib, que por ejemplo MSVC 10, BCC582 y BCC63 o PellesC si que traen.

Re: Migrando de FWH 32 a FWH 64 - windows.h

PostPosted: Thu Jan 01, 2015 11:55 pm
by cnavarro
Yo lo he instalado en Home Premium

Image