[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