Ver Mensaje Individual
  #1  
Antiguo 27-06-2006
Avatar de ixMike
ixMike ixMike is offline
Miembro
 
Registrado: feb 2004
Posts: 1.151
Reputación: 22
ixMike Va por buen camino
Question 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.
Responder Con Cita