Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   No carga LoadLibrary(archivoDLL) (https://www.clubdelphi.com/foros/showthread.php?t=79909)

darkbits 21-08-2012 00:36:42

No carga LoadLibrary(archivoDLL)
 
Un saludo al club
estoy trabajando en Windows Xp sp3 y D6
y cuando realizo DLLHandle := LoadLibrary('is.dll');
el archivo DLL que esta en el mismo directorio del proyecto NO carga para nada :(
DLLHandle siempre toma valor 0 y nunca ingresa al if DLLHandle <> 0 then

veo que es mas problema de algun archivo dll no el codigo.

mi consulta es sera que falta algun archivo para que funcione loadlibrary ?
porque en un principio me pedia msvcr100d.dll y lo descarge de la web 2 veces porque en una me seguia pidiendo y desarge una version mas antigua y ya no me pidio pero igual sigue sin cargar.

Delphi6

Código Delphi [-]
initialization
  EncodeHand:=0;
  DecodeHand:=0;
  DLLHandle := LoadLibrary('is.dll');
  if DLLHandle <> 0 then
   begin
     InitEncode_Easy:=GetProcAddress(DLLHandle, 'InitEncode_Easy');
     Encodeing_Easy:=GetProcAddress(DLLHandle, 'Encodeing_Easy');
     RegisterCodec(CreateCodec,18);
    end;
   finalization
 if DLLHandle <> 0 then
    FreeLibrary(DLLHandle);

roman 21-08-2012 01:25:31

Y, ¿has probado poniendo la ruta completa?

// Saludos

darkbits 21-08-2012 01:39:46

si eh probado con ruta directa y no carga

roman 21-08-2012 01:44:02

Bueno, pues entonces, tal parece que es un problema de esa biblioteca, pero sin saber de qué es, poco podremos ayudar.

// Saludos

Neftali [Germán.Estévez] 21-08-2012 09:49:45

Román tiene razón. Es muy poca información para saber de qué se puede tratar.
Es posible que la DLL tenga dependencias que no se encuentran, de ahí que no se pueda cargar la DLL.

No se si GetLastError() te podrá dar algún error.

darkbits 21-08-2012 17:31:15

lo unico que quiero saber es porque no carga o como tengo que cargar lo demas del codigo va de maravilla solo mi incognita es porque no funciona esto
Código Delphi [-]
 DLLHandle := LoadLibrary('is.dll');

roman 21-08-2012 17:40:58

Es imposible contestar a tu pregunta. Ya lo dijo Neftali. Si esa dll tiene otras dependencias y alguna de ellas no está presente, entonces no cargará. Pero, en general, puede haber muchas razones por las que no cargue una biblioteca y no hay manera de saber porqué a partir únicamente del nombre is.dll de la biblioteca.

A lo sumo, intenta esto:

Código Delphi [-]
DLLHandle := LoadLibrary('is.dll');
if DLLHandle = 0 then
  RaiseLastOSError();

a ver si te manda un mensaje de error más indicativo.

// Saludos

Neftali [Germán.Estévez] 21-08-2012 17:55:03

Busca las dependencias que pueda tener esa DLL.
Los GExperts (por ejemplo, aunque hay más) tienen una utilidad llamada PEExplorer (creo recordar) que permite conocer las dependencias de EXE, BPL, DLL,...

darkbits 21-08-2012 18:53:23

Roman hice lo que me sugeriste y me da este error que no puedo interpretar q que dll es lo que falta



gracias

escafandra 21-08-2012 20:00:41

Cita:

ERROR_MOD_NOT_FOUND
126 (0x7E)

The specified module could not be found.

Saludos. .

darkbits 21-08-2012 20:10:57

gracias escafandra

y cual seria la solucion

roman 21-08-2012 20:50:42

Por el momento, lo mejor que puedes hacer es lo que te comenta Neftali. Estás solo en esto porque no tenemos ni idea de qué tipo de biblotecas estés usando.

// Saludos

escafandra 21-08-2012 21:02:24

A demás de la herramienta que te propone Neftali puedes usar Dependency Walker (depends.exe) que viene con Windows. Otra posibilidad es IEDataVisor herramienta que escribí hace unos años para explorar las funciones exportadas e importadas (con sus dependencias) de las dll y ejecutables.


Saludos.

roman 21-08-2012 21:06:24

Cita:

Empezado por escafandra (Mensaje 440244)
puedes usar Dependency Walker (depends.exe) que viene con Windows.

¿Viene con windows? No sé dónde está :confused: En todo caso, puede descargarse de su sitio.

// Saludos

escafandra 21-08-2012 21:33:46

Cita:

Empezado por roman (Mensaje 440247)
¿Viene con windows? No sé dónde está :confused: En todo caso, puede descargarse de su sitio.

Pues mi WinXP si trae la versión 2.1.2519. Descubrí la aplicación al poco de salir al mercado WinXP por un libro que trataba del Registro y configuración de WinXp. No he comprobado si se mantiene en Vista o Win7.

En cualquier caso (si darkbits no lo tiene con su Windows) ya le has dado el enlace.


Saludos.

escafandra 21-08-2012 21:51:47

Me ha picado la curiosidad tu comentario, roman y he buscado la ubicación de Dependency Walker en Windows XP:
Cita:

Dependency Walker forma parte de las herramientas de soporte de Windows XP - Windows XP Support Tools, que se encuentra en la carpeta Support\tools del CD de Windows XP

Saludos.

roman 21-08-2012 21:59:49

Je, je. Bueno, mi comentario se debió básicamente a que escribí depends en la línea de comandos y me mandó a freir espárragos :D Además, a que en ocasiones anteriores que se ha comentado de esa herramienta, no recordaba su referencia como parte del mismo windows.

Ahora he visto en el cd de windows 7 y al parecer ya no lo ponen ahí.

// Saludos

escafandra 21-08-2012 22:10:41

Y como curiosidad, Dependency Walker, también se instala con otros paquetes de Microsoft como "Microsoft eMbedded C++" y "WINDDK" ;)


Saludos.


La franja horaria es GMT +2. Ahora son las 10:06:53.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi