Tema: Uso de DLL
Ver Mensaje Individual
  #1  
Antiguo 26-08-2008
alugotrujillo alugotrujillo is offline
Registrado
 
Registrado: ago 2008
Posts: 1
Reputación: 0
alugotrujillo Va por buen camino
Uso de DLL

Estoy trabajando con DLL, hasta ahora lo he hecho por medio del metodo "facil"
procedure MostrarDatosEstrato(BaseDatos: String; Rodal: Integer); stdcall;external 'estrato.dll';
Pero ahora quiero pasar el metodo que usa windows con sus dll, me han dicho eso, mediante esta via

Código Delphi [-]
procedure MostrarNomenclador(BD: String; QueNomenclador{, Selecc}: Integer; Modificar: Boolean);
  type
    TNomenclador = function(BaseDatos: String; QueTabla{, Busqueda}: Integer; PermModif: Boolean): String;
  var
    Nomenclador: TNomenclador;
    DLLInstance: THandle;
  begin
    if (BD = '') OR (not FileExists(BD))
    then  MessageDlg('Debe establecer una base de datos', mtError, [mbOK], 0)
    else
    begin
      CoInitialize(NIL);
      DLLInstance:= LoadLibrary('nomencladores.dll');
      if DLLInstance = 0 then
      begin
        MessageDlg('No se ha encontrado la DLL "nomencladores.dll"', mtError, [mbOK], 0);
        Exit;
      end;
      @Nomenclador:= GetProcAddress(DLLInstance,'MostrarNomenclador');
      if @Nomenclador <> nil
      then Nomenclador(BD,QueNomenclador,{Selecc,}Modificar)
      else MessageDlg('Función no encontrada "MostrarNomenclador"', mtError, [mbOK], 0);
      FreeLibrary(DLLInstance);
    end;
  end;
funciona muy bien cuando es un procedimineto, pero como puedo modificarlo para cuando en la DLL se encuentra una funcion y necesito saber el resultado

Última edición por roman fecha: 26-08-2008 a las 19:40:09. Razón: Agregar etiqueta [delphi] para mayor legibilidad
Responder Con Cita