perdon por tantos mensajes pero ya tube una solucion aunque con algunos problemitas
type
TProc = procedure;
var
Proc: TProc;
Handle: THandle;
DllName: string;
ShowDllFormModal:string;
begin
DllName:= combobox1.Text;
ShowDllFormModal:= combobox2.Text;
Handle := LoadLibrary(PChar(DllName));
if Handle = 0 then
raise Exception.Create('DLL no encontrada: ' + DllName);
try
Proc := GetProcAddress(Handle, PChar(ShowDllFormModal));
if @Proc = nil then
raise Exception.Create('Función no encontrada: ' +
ShowDllFormModal);
Proc;
finally
FreeLibrary(Handle);
end;
end;
con este codigo puedo ejecutar un dll ingresando el nombre del dll y el nombre de la funcion en un combobox.
en mi caso ejecute un showdllformmodal el problema es que cuando cierro la aplicacion showmodal me salen dos errores:
1- access violation at address 00c8c1130 read of address 00c8c1130
2- el identificador de la ventana no es valido.
como hago para eliminar estos errores???
|