@BUG: In Delphi wird standardmäßig der Name der Prozedur verwendet, wenn nicht explizit ein Export-Name angegeben ist.
Code:
Function addiere (Value1, Value2 : Integer) : Integer; [color=#ff0000][b]stdCall;[/b][/color]
...
Exports
addiere;
Code:
Function addiere (Value1, Value2 : Integer) : Integer; [color=#ff0000][b]stdCall;[/b][/color]
external 'rechne.DLL';
Code:
Type TAddition = Function (Value1, Value2 : Integer) : Integer;
Fällt dir was auf?
PS: Wie die "unabhängige" Funktion Addition in der DLLUnit2 deklariert ist, ist egal, aber die Signatur des Prozudurzeigers muß schon zum Export passen.
PSS: in Delphi ist bei einer Zuweisung kein @ notwendig
Delphi-Quellcode:
Addition := GetProcAddress(
Handle, '
addiere');
if Assigned(Addition)
then
und das Result ist nicht initialisiert, wenn die
DLL oder die Funktion nicht geladen/gefunden werden kann,
aber dieses müßte der Compiler eigentlich auch bemängeln. (Compiler-Meldung)