Tiempo de ejecución Error R6034 al intentar utilizar Firebird Server 2.1 en Windows Server 2003 (no se puede cargar gds32.dll)
-
19-09-2019 - |
Pregunta
Estoy recibiendo este error de ejecución R6034 al intentar ejecutar una aplicación en un servidor Windows 2003.
Microsoft Visual C ++ Runtime Library
Tiempo de ejecución Error!
R6034
Una aplicación ha hecho un intento de cargar la biblioteca de tiempo de ejecución C incorrectamente. Por favor, póngase en contacto con el equipo de soporte de aplicación para obtener más información.
Este servidor se había instalado Firebird 2.0, y funciona, he desinstalado e instalado Firebird 2.1, pero Firebird 2.1 no funciona en absoluto.
Cuando uso instclient para ver qué DLL se instala devuelve el resultado correcto, que es la versión que estoy usando Firebird 17910:
>instclient.exe query gds32
Installed GDS32.DLL version : 6.3.1.17910 (shared DLL count 1)
También buscaron otras DLL que podrían perderse en el sistema, pero no hay ninguno, el sistema está limpio, pero no puedo conseguir Firebird funcione.
Si se está preguntando ¿por qué necesito el gds32, es porque uso el componente TIBBackupService y utiliza gds32 por defecto (o peor, codificado) por lo que no se puede cambiar a fbclient.dll.
¿Alguna idea para resolver este son bienvenidos, gracias.
Solución
Lo más probable es que haya optado por crear la gds32.dll
legado en el directorio system32, pero la versión necesaria de la biblioteca de ejecución MSVC no está instalado. Utilice la Microsoft Dependency Walker ya sea en el de 32 bits o la versión de 64 bits (dependiendo de la versión del servidor Firebird) a comprobar qué archivo DLL no se encuentra. En cualquier caso, la instalación del paquete redistribuible MS debe ayudar.
Otros consejos
El error es probablemente porque va a cargar un archivo DLL de tiempo de ejecución C del camino en lugar de desde un directorio SxS. Usted tendrá que añadir un manifiesto a su exe que informa al cargador del sistema operativo de la dependencia. Mira esta respuesta que, aunque no estén directamente relacionados, apunta a cómo se puede arreglar R6034. Tenga en cuenta que el error se refiere a la biblioteca de ejecución C ++, no gds32.dll. Aunque la otra pregunta no menciona directamente R6034, contesté esa pregunta y había un R6034 que fue la causa raíz.