En mi máquina de desarrollo, tengo Delphi 10.2 y Firebird 2.5. Las aplicaciones de base de datos que creo en esta configuración funcionan correctamente.

Copié un programa junto con su base de datos a otra computadora con Windows 10. Instalé Firebird; También instalé SQL Manager Lite para InterBase / Firebird en esta computadora, y este programa puede abrir la base de datos y ver los datos que contiene. Pero mi programa Delphi no puede abrir la base de datos, mostrando el mensaje de error 'No se puede cargar dbxfb.dll (código de error 193). Puede que falte en la ruta del sistema '.

He copiado dbxfb.dll en todas las ubicaciones que se me ocurren (el mismo directorio donde está el programa, el mismo directorio donde está la base de datos, windows \ system32, C: \ Archivos de programa (x86) \ Firebird, y más ) pero el mensaje sigue siendo el mismo. En mi máquina de desarrollo, lo que creo que es la ruta (es decir, propiedades del sistema \ avanzadas \ variables de entorno) contiene solo el directorio% USERPROFILE% \ AppData \ Local \ Microsoft \ WindowsApps. En la otra computadora, agregué C: \ Archivos de programa (x86) \ Firebird pero fue en vano.

Entonces, ¿dónde debería ubicarse dbxfb.dll, o cómo "le digo" a mi programa dónde encontrarlo?

Editar: Con respecto a la 'bitness', ambas computadoras son de 64 bits. En el cuadro de diálogo Opciones de proyecto en Delphi, solo existe la opción de 32 bits. Establecí la configuración de compatibilidad del programa en Windows 8, pero esto no hizo ninguna diferencia con respecto a la dll que faltaba.

Edición adicional: La versión que está / estaba en la máquina de destino tiene un tamaño de 1.412kb y tiene fecha del 13/11/2015 1:55; esta versión aparentemente proviene de C: \ Archivos de programa (x86) \ Embarcadero \ Studio \ 17.0 \ bin64, por lo que definitivamente es la versión incorrecta.

En C: \ Archivos de programa (x86) \ Embarcadero \ Studio \ 17.0 \ bin, hay una versión que tiene solo 278kb de tamaño, la misma fecha pero hora 06:55. Copiar el archivo más pequeño en la máquina de destino y ejecutar el programa da ahora un mensaje de error diferente: error de E / S durante la operación "@ 1" para el archivo "@ 2". Error al intentar abrir el archivo.

1
No'am Newman 22 ene. 2021 a las 13:56

1 respuesta

La mejor respuesta

https://docs.microsoft.com/en-us/windows/win32/debug/system-error-codes--0-499-

ERROR_BAD_EXE_FORMAT

193 (0xC1)

%1 is not a valid Win32 application.

De hecho, es el problema del bitness sugerido por Mark.

1
user13964273 22 ene. 2021 a las 12:40