Hallo,
wenn ich eine DLL in Delphi schreibe, kommt immer der Fehler: „Einsprung nicht gefunden“ (oder so ähnlich). In der DLL schreibe ich eine Funktion. Könnt ihr mir vielleicht eine Beispiel-DLL-Funktion geben (die z.B.: eine Message anzeigt)? Ich möchte diese DLL in VB verwenden.
function AddLong(a, b: LongInt): LongInt; stdcall;
begin
result := a + b;
end;
function SubLong(a, b: LongInt): LongInt; stdcall;
begin
result := a - b;
end;
exports
SubLong,
AddLong;
begin
end.
Die USES-Anweisung ist unnoetig wenn du keine weiteren Units einbinden willst. Der Index ist unnoetig, wenn du ueber den Namen auf die Funktionen zugreifst (was sinnvoll ist)
Du hast wahrscheinlich die exports-Anweisung vergessen.
Wenn du die DLL in VB verwenden willst, ist die Anweisung „stdcall“ unbedingt erforderlich, sonst bekommst du bei Funktionen, die Parameter uebergeben eine Schutzverletzung.
in Delphi bindest Du die Funktionen dann im Programm so ein:
function AddLong(a,b:LongInt): LongInt; stdcall; external ‚Project2.dll‘ ;
function SubLong(a,b:LongInt): LongInt; stdcall; external ‚Project2.dll‘ ;
in VB so:
function AddLong lib „Project2.dll“ (a,b As Long) As Long
function SubLong lib „Project2.dll“ (a,b As Long) As Long