|
Te dejo el codigo que hace la llamada, no creo que te sirva de mucho... Asi llamo a todas las DLL de mi programa y depende de la DLL funciona y otras no
procedure LlamarLanzarMaqRadio(pHandle : HWND; pDSPUBLIC, pDSEMISOR : string; gConfirmar : boolean;
pTPPUBLIC, pTPPARRIL, pCDEMISOR : string; pFEPARDIA : TDateTime);
var
Inicializa : TInicializa;
ProcDllProduccion : TMaqRadioPro;
STR_DLL, PATH_DLL : String;
begin
PATH_DLL := ExtractFilePath(Application.ExeName);
STR_DLL := PATH_DLL + NAME_DLL;
LibHandle := LoadLibrary(PChar(STR_DLL));
try
if LibHandle = 0 then
raise EDLLLoadError.CreateFmt(STR_LOAD_ERROR,[STR_DLL]);
@Inicializa := GetProcAddress(LibHandle, 'Inicializa');
{$IFDEF ORACLE}
Inicializa (fmDMConexion.OracleSession1);
{$ENDIF}
{$IFDEF SQLSERVER}
Inicializa (fmDMConexion.ADOSession);
{$ENDIF}
@ProcDllProduccion := GetProcAddress(LibHandle, 'LanzarMaqRadio');
if Assigned(ProcDllProduccion) then
ProcDllProduccion(pHandle, pDSPUBLIC, pDSEMISOR, gConfirmar, pTPPUBLIC, pTPPARRIL, pCDEMISOR, pFEPARDIA);
finally
Application.ProcessMessages;
//FreeLibrary(LibHandle);
end;
end;
|