Borland7 versus VisualStudio

Re: Borland7 versus VisualStudio

Postby Antonio Linares » Fri Mar 18, 2016 8: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: Select all  Expand view
#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
User avatar
Antonio Linares
Site Admin
 
Posts: 42076
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Borland7 versus VisualStudio

Postby Antonio Linares » Fri Mar 18, 2016 8: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
User avatar
Antonio Linares
Site Admin
 
Posts: 42076
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Borland7 versus VisualStudio

Postby JmGarcia » 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" :D

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
User avatar
JmGarcia
 
Posts: 654
Joined: Mon May 29, 2006 3:14 pm
Location: Madrid - ESPAÑA

Re: Borland7 versus VisualStudio

Postby Antonio Linares » Sat Mar 19, 2016 7: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
User avatar
Antonio Linares
Site Admin
 
Posts: 42076
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Borland7 versus VisualStudio

Postby cnavarro » Sat Mar 19, 2016 9: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
User avatar
cnavarro
 
Posts: 6541
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Borland7 versus VisualStudio

Postby JmGarcia » Sat Mar 19, 2016 6: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
User avatar
JmGarcia
 
Posts: 654
Joined: Mon May 29, 2006 3:14 pm
Location: Madrid - ESPAÑA

Previous

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 91 guests