Kalde function i dll fra string

Tags:    delphi

Hvordan kan jeg kalde en function (med parametre) fra en dll fil i mit program?
Leder efter noget a la:

function CallFunctionFromDll(DLLFile,Function: string);
begin
GetDll(DLLFile);
CallFromDLL('MinFunktionEvtMedParametre');
end;


procedure TForm1.Button1Click(Sender: TObejct);
begin
CallFunctionFromDLL('Dllfil.dll','KillTask(''Explorer.exe'')');
end;

Har fundet noget kode der kan kalde funktioner fra en dll, bare ikke med parametre.

-----------------------------
Jonas (Decko)
http://decko.1go.dk/blog



4 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 2 karma
Sorter efter stemmer Sorter efter dato
Jeg har søgt lidt på google og har fundet det her link. Håber det kan bruges:

http://www.delphi-central.com/dynamicdll.aspx

Slå evt. også funktionerne LoadLibrary og GetProcAddress op.


Kim Jensen aka BOSH
http://www.hulubulu.dk



hmm det er et godt spørgsmål som jeg personligt ikke tror kan løses uden assembler af en eller anden størrelse.. Jeg ved dog ikke lige hvordan delphi håndterer parametre i asm.

Mit bedste bud ville være at køre noget kode der deler parametre op i små strings og så sende dem videre til custom dll procedurer i pointer form
Jeppe Johansen
Jeppesoftware@hotmail.com



Umiddelbart ser det ud til man på forhånd i programmet skal declare procedurerne. Idéen med strings var at man lige præcis ikke behøvede at ændre i exe-filen for at lave nye funktioner...kun ændre i dll filen. Men prøver at kigge på de 2 funktioner og ser hvad jeg kan finde ud af.


-----------------------------
Jonas (Decko)
http://decko.1go.dk/blog



Lav et callback.

Lav så programmer kalder funktionen Init(Callback: TCallfunction) i DLL'en. TCallfunction deklæreres:
Fold kodeboks ind/udKode 


Dvs. fra programmet:
Fold kodeboks ind/udKode 


DLL funktionen Init skal så bare gemme pointeren til FunctionHandler'en og der kan så kaldes FunctionHandler("Hejsa", <EtArraySomErBlevetInitialiseretIForvejen>;);

PS. Alt det der var pseudo kode og ikke testet da jeg ikke har Delphi installeret atm, men håber du forstår ideen bag.

MH.

The-Freak

Livet er for kort til at kede sig.
blog: http://laslego.frac.dk



t