*räusper* Delphi hat leider keine Glaskugel. Die Funktionsdefinition im Programm muss entweder wie folgt lauten:
Delphi-Quelltext
1:
| function add(a,b:integer):integer; external 'rechnen.dll' name 'addieren'; |
oder
Delphi-Quelltext
1:
| function addieren(a,b:integer):integer; external 'rechnen.dll'; |
oder du bindest zur Laufzeit ein. Das sieht dann so aus:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| function addieren(a,b:integer):integer; var add:function (x,y:integer):integer; Lib:THandle; begin @add := nil; Lib := LoadLibrary(PCHar('rechnen.dll')); try if Lib = 0 then begin Result := -1; exit; end; @add := GetProcAddress(Lib,PChar('addieren')); if @add = nil then begin Result := -1; exit; end; result := add(a,b); finally FreeLibrary(Lib); end; end; |
Da musst du aber auch die DLL zum Programm mitliefern, da die DLL zur
Laufzeit eingebunden wird. Hat den Vorteil, dass du, wenn du einen Bug in addieren entdeckst, nicht das ganze programm austauschen musst, sondern nur die DLL.
Btw: Das ganze steht glaub ich auch in der Delphi-Library, aber ganz sicher auf
www.delphi-praxis.de und ist durch etwas intelligentes Googlestoßen zu finden.
Tschö,
nullplan
Ich fahr' nicht selber, weil ich festgestellt habe: ich fahre zu emotional. Bin 180 gefahren wo 30 erlaubt war... -- Jürgen von der Lippe