[Lazarus-es] ot: firebird/ibexpert

José Mejuto joshyfun en gmail.com
Sab Sep 6 02:11:50 CEST 2014


El 06/09/2014 1:18, Paola Bruccoleri escribió:
> Hola MArtín..
> lo q no entiendo es que yo tb tengo win 8.1 64b, IGUAL que esa otra
> máquina!.. yo cuando instalé todo (es bastante nueva esta máq) nunca
> tuve dramas....
> en fin....
>

Hola,

Posiblemente tengas un fbclient.dll de 32 bit en Windows\System32 y ahí 
no puede estar en máquinas de 64bits, tiene que estar en 
Windows\SysWOW64 (si parece raro).

A ver, me explico.

* Máquina de 32 bits, ejecutable de 32 bits

Aplicación de 32 bits en "Program Files" + dlls de 32 bits en 
Windows\System32

Hasta aquí normal.

* Máquina de 64 bits, ejecutable de 64 bits

Aplicación de 64 bits en "Program Files" + dlls de 64 bits en 
Windows\System32

Aparentemente normal.

Máquina de 64 bits, ejecutable de 32 bits

Aplicación de 32 bits en "Program Files (x86)" + dlls de 32 bits en 
Windows\SysWOW64

Esto si parece más raro verdad ? :)

El rollo es que si la app es de 32 bits en un sistema de 64, Windows 
engaña al programa y le hace ver el SysWOW64 como si se llamar System32, 
pero si resulta que vas con una app de 64 bits a la carpeta System32 ves 
un contenido diferente, correspondiente a la máquina en 64 bits.

Puedes comprobarlo fácilmente, si tienes un editor hexadecimal de 32 
bits abre el archivo kernel32.dll que está en System32, cerca del offset 
0x100 verás las letras "PE" seguidas de dos ceros, los dos siguientes 
números indican la plataforma:

"4C 01" = 32 bits
"64 86" = 64 bits

Ahora abre el mismo archivo en SysWOW64 y verás que ahí pone "4C 01" lo 
que indica que es una DLL de 32 bits.

Para estar seguro en estas cosas, pon la DLL en la misma carpeta que el 
ejecutable y te olvidas de estos líos.

--

Saludos.





More information about the Lazarus-es mailing list