Hallo,
ich habe eine Funktion programmiert, die mir einen bestimmten String zusammen baut. Diese Funktion möchte ich in eine
DLL auslagern. Ich habe irgendwie gehört, dass es nicht funktionieren soll. Ich habe auch schon vor einiger zeit mal was probiert und das hat auch nicht funktioniert. Ist es überhaupt möglich mit Dlls String übergeben zu lassen?
so baue ich meine DLLs immer aus:
Delphi-Quellcode:
library Project1;
{ Wichtiger Hinweis zur DLL-Speicherverwaltung: ShareMem muß die
erste Unit im Uses-Anweisungsteil des Interface-Abschnitts Ihrer
Unit sein, wenn Ihre DLL Prozeduren oder Funktionen exportiert, die
String-Parameter oder Funktionsergebnisse übergeben. Dies gilt für
alle Strings die an und von Ihrer DLL übergeben werden -- selbst
für diese, die in Records oder Klassen verschachtelt sind. ShareMem
ist die Schnittstellen-Unit zur DELPHIMM.DLL, welche Sie mit Ihrer
DLL weitergeben müssen. Um die Verwendung von DELPHIMM.DLL zu
vermeiden, übergeben Sie String-Parameter unter Verwendung von
PChar- oder ShortString-Parametern. }
uses
SysUtils,
Classes;
function Rechne(a, b : Integer) : Integer;
begin
Result:=a + b;
end;
exports
Rechne
name '
Rechne';
begin
end.
Importiert wird im Programm mit folgender Definition:
Rechne(a, b : Integer) : Integer; external 'Project1' name 'Rechne';