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: Integer; Modificar: Boolean);
type
TNomenclador = function(BaseDatos: String; QueTabla: 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,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