Unable to Load DLL

08/09/2003 - 16:24 por Juan Andrés | Informe spam
He tratado de cargar una DLL no administrada en un web
service escrito en C#. CUando se ejecuta el codigo se
produce la siguiente excepción:

System.DllNotFoundException: Unable to load DLL
(Itq32.dll)

Ya he verificado la siguiente lista:
1 - Hay una solo archivo Itq32.dll en el computador
2 - Itq32 esta en System32 y tiene permisos.
3 - Tdas las dependencias de Itq32 estan en System32 y
tienen permisos.
4 - El mismo codigo que usa Itq32 fue probado antes en una
aplicación standalone c#, en la misma maquina.

Este es el código de la clase que carga la DLL. Noten que
antes de cargar Itq32.dll el codigo carga y usa Itf32.dll
sin problema. Itf32.dll es una DLL with con las mismas
caracteristicas de Itq32.


using System;
using System.Runtime.InteropServices;
..

public IdxApi()
{
int status = -1;
try
{
status = ItfInit();
status = ItqInit();
status = ItpInit();
status = ItsInit();
}
catch(DllNotFoundException ex) {
DllNotFoundException ex2 = new DllNotFoundException
(ex.Message + " -> " + status);
throw ex2;
}
..

[DllImport("Itf32.dll")]
private static extern int ItfInit();

[DllImport("Itq32.dll")]
private static extern int ItqInit();


Gracias por la ayuda
 

Leer las respuestas

#1 Tomas Restrepo \(MVP\)
09/09/2003 - 01:39 | Informe spam
Juan Andres,
<<

He tratado de cargar una DLL no administrada en un web
service escrito en C#. CUando se ejecuta el codigo se
produce la siguiente excepción:

System.DllNotFoundException: Unable to load DLL
(Itq32.dll)

Ya he verificado la siguiente lista:
1 - Hay una solo archivo Itq32.dll en el computador
2 - Itq32 esta en System32 y tiene permisos.
3 - Tdas las dependencias de Itq32 estan en System32 y
tienen permisos.
4 - El mismo codigo que usa Itq32 fue probado antes en una
aplicación standalone c#, en la misma maquina.

Este es el código de la clase que carga la DLL. Noten que
antes de cargar Itq32.dll el codigo carga y usa Itf32.dll
sin problema. Itf32.dll es una DLL with con las mismas
caracteristicas de Itq32.


using System;
using System.Runtime.InteropServices;
..

public IdxApi()
{
int status = -1;
try
{
status = ItfInit();
status = ItqInit();
status = ItpInit();
status = ItsInit();
}
catch(DllNotFoundException ex) {
DllNotFoundException ex2 = new DllNotFoundException
(ex.Message + " -> " + status);
throw ex2;
}
..

[DllImport("Itf32.dll")]
private static extern int ItfInit();

[DllImport("Itq32.dll")]
private static extern int ItqInit();






Es posible que ltq32.dll tenga dependencias en otras dlls, alguna de las
cuales no este en esta maquina. Usa la herramienta depends.exe que viene con
el Platform SDK (y creo que con VS.NET) para mirar que otras dlls usa y mira
si de pronto alguna de esas no esta

Tomas Restrepo

Preguntas similares