FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Borland7 versus VisualStudio
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Borland7 versus VisualStudio
Posted: Fri Mar 18, 2016 08:14 PM
JM,

Este código está funcionando bien con FWH 64. He implementado unos cambios en la funcion FWCALLDLL() para 64 bits,
que aunque se llama igual que la usada en 32 bits, su código es muy diferente:

Te envío por email las librerias modificadas. En la próxima versión de FWH 64 incluiremos estos cambios.

Code (fw): Select all Collapse
#include "FiveWin.ch"

Function Main()

  local cFichero := "c:\fwh\samples\test.exe"
  local nTipo    := 0

  GetBinaryType( cFichero, @nTipo )
  MsgInfo( nTipo, "Tipo de fichero" )

return nil

DLL32 FUNCTION GetBinaryType( cFile AS LPSTR, @nType AS PTR ) AS DWORD PASCAL FROM "GetBinaryTypeA" LIB "Kernel32.dll"
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Borland7 versus VisualStudio
Posted: Fri Mar 18, 2016 08:26 PM

En realidad no hace falta escribir DLL32 ya que FWH lo traduce en DLL, por lo que esta sintaxis es correcta para 32 y 64 bits:

DLL FUNCTION GetBinaryType( cFile AS LPSTR, @nType AS PTR ) AS DWORD PASCAL FROM "GetBinaryTypeA" LIB "Kernel32.dll"

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 654
Joined: Mon May 29, 2006 03:14 PM
Re: Borland7 versus VisualStudio
Posted: Fri Mar 18, 2016 11:56 PM
¡¡¡ Funciona perfectamente en 64 bits !!! con las nuevas librerías, gracias Antonio.

Esperaremos a la siguiente versión de FWH64 para tener los cambios "oficializados" :-)

Solo un dato curioso en 64 bits.
Si inicializo la variable nTipo a un valor negativo (manía que tengo para según que casos) como por ejemplo -1 el resultado de nTipo una vez ejecutada la función GetBinaryType es un número exageradamente grande de signo negativo. Si inicializo a cero u otro valor positivo el resultado es correcto.

En 32 bits esto no ocurre.
Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.

FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Borland7 versus VisualStudio
Posted: Sat Mar 19, 2016 07:39 AM

JM,

gracias por tus pruebas y por tu información.

Al usar un numero negativo, el signo se guarda en la parte alta del número y de ahí
el número grande que te aparece. Imagino que Windows lo modifica parcialmente.

De todas formas, no hay que usar números negativos ahi :-)

Las diferencias entre 32 y 64 bits pueden ser por el compilador usado

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Borland7 versus VisualStudio
Posted: Sat Mar 19, 2016 09:29 AM
JmGarcia wrote:
Solo un dato curioso en 64 bits.
Si inicializo la variable nTipo a un valor negativo (manía que tengo para según que casos) como por ejemplo -1 el resultado de nTipo una vez ejecutada la función GetBinaryType es un número exageradamente grande de signo negativo. Si inicializo a cero u otro valor positivo el resultado es correcto.


Lo mismo ocurre si no inicializas la variable, obtienes un valor muy grande pero de signo positivo
Evidentemente, quiero pensar que habrá que inicializarla con el mismo tipo de dato que va a devolver
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
Posts: 654
Joined: Mon May 29, 2006 03:14 PM
Re: Borland7 versus VisualStudio
Posted: Sat Mar 19, 2016 06:55 PM
cnavarro wrote:Evidentemente, quiero pensar que habrá que inicializarla con el mismo tipo de dato que va a devolver

Ya pero el tipo DWORD puede tener valores negativos y positivos ¿no?

Sea como fuere habrá que tener cuidado con este tema.
Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.

FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013

Continue the discussion