Übergibst Du ggf. Strings?
Nein, in dem Beispiel nicht.
In meiner realen Anwendung übergebe ich auch Strings, aber nicht direkt, sondern in einem Datenkonstrukt.
Sieht dann z.B. so aus:
Code:
tparameter = record
stringvar1,
stringvar2 : pwidechar;
intvalue1,
intvalue2 : integer;
end;
pparameter = ^tparameter;
var
parameter : tparameter;
Übergeben wird dann ein Pointer.
In der
DLL sieht das dann so aus:
Code:
function edittest (par : pparameter) : HWND; stdcall;
begin
.....
end;
Und aufgerufen wird es so:
Code:
function edittest (par : pparameter) : HWND; stdcall; external 'testlib.dll';
procedure testaufruf;
var
par : tparameter;
begin
par.stringvar1 := 'aaa';
par.stringvar2 := 'bbb';
par.intvalue1 := 1;
par.intvalue1 := 2;
edittest (@par);
end;
Das funktioniert einwandfrei.
Verwende ich z.B. um Parameter für die Datenbank zu übergeben.