Ver Mensaje Individual
  #1  
Antiguo 08-09-2005
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Reputación: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Smile Error «illegal line ""» en extensión DLL que accede a Firebird

¡Buen día a todos!

Este mensaje es parte de una investigación que estoy realizando para detectar la causa y solución de una anomalía surgida entre PHP 4 y una extensión DLL para PHP creada con Delphi 7.

Uso una biblioteca de componentes llamada PHPDelphi que facilita la creación de extensiones Win32 para PHP usando Delphi (tomar en cuenta que PHP no importa de forma directa las funciones de una DLL, como lo hace normalmente cualquier módulo ejecutable).

Cree una extensión DLL Win32 para PHP. Hago que PHP.exe la cargue en memoria, asignándole una entrada en PHP.ini (extension=MiDLL.dll). Inicialmente probé su funcionalidad con rutinas que hacen operaciones sencillas, llamadas desde programas .php, y las páginas Web resultantes se mostraron correctamente en el navegador.

Pero luego agregué a la extensión DLL una función que accede a una base de datos Firebird y ahí se presentó el problema. Para facilitar su depuración desde Delphi, hago llamar a dicha función en el código de inicialización de la DLL.

Ahora la DLL está programada para, al cargarse en memoria, acceder a una base de datos Firebird y realizar ciertas tareas con ella. Esto fue implementado con componentes IBX (TIBDataBase, etc.). Si yo creo una aplicación de prueba que cargue mi DLL, todo se ejecuta como se espera.

Pero si es PHP.exe el que carga la DLL (habiéndolo establecido en PHP.ini), entonces cuando el componente TIBDataBase intenta abrir la conexión (MiIBDataBase.Open) aparece una ventana de error (cuyo remitente pudiera ser el programa cliente o el programa servidor de Firebird) con el mensaje:

Cita:
C:\Archivos de programa\Firebird\Firebird_1_5\firebird.conf: illegal line ""
Busqué en la Red información al respecto pero sólo encontré un puñado de mensajes sin solución sobre problemas que arrojaban el mismo mensaje de error.

¿Cómo carga PHP.exe una DLL para que afecte de esa manera el comportamiento de Firebird?

Les agradezco de antemano cualquier información que pueda serme útil en esta investigación.

Un abrazo Web.

Al González.
Responder Con Cita