Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   DLL con nombre desconocido (https://www.clubdelphi.com/foros/showthread.php?t=33103)

ixMike 27-06-2006 19:25:14

DLL con nombre desconocido
 
Estimados compañeros de Delphi,

En un programa que estoy haciendo quiero que al copiarle archivos DLL en su mismo directorio, al arrancar compruebe si estos son plug-ins para el mismo. Creé un nuevo proyecto de prueba a parte, y coloqué un TButton y un TListBox para buscar las DLLs (cosa que funcionó). Aquí está el código:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
encontrado: integer;
archivo: TSearchRec;
begin
lista.clear;
lista.Items.BeginUpdate;
encontrado:=FindFirst(ExtractFilePath(ParamStr(0)))+'*.dll',faAnyFile,archivo);
while encontrado=0 do
  begin
  Lista.Items.Add(ExtractFileName(archivo.Name));
  encontrado:=FindNext(archivo);
  end;
FindClose(archivo);
lista.Items.EndUpdate;
end;

Informándome he conseguido acceder a las funciones de cualquier DLL hecha por mí. Por ejemplo, todas las DLL que son plugins para ese programa tienen una función llamada GetProgramName, que devulve una cierta cadena. Si la cadena no es válida (o no existe esa función), entonces esa DLL no es un plugin para mi programa.

Código Delphi [-]
{...}
function GetProgramName: string; stdcall; external 'plugin1.dll' name 'GetProgramName';
{...}

El problema que tengo es que no sé cómo acceder a las funciones de una DLL cuyo nombre de archivo desconozco (las que me aparecen en la lista del principio). ¿Alguien me puede ayudar?

Gracias.

seoane 27-06-2006 19:54:03

Tienes que usar las funciones Loadlibrary y GetProcAddress. Buscando un poquito por los foros encontre este ejemplo de dec.

ixMike 28-06-2006 11:05:02

Pues muchas gracias


La franja horaria es GMT +2. Ahora son las 15:51:40.

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