Hej
Jeg skal lave en opkobling til en DLL (Com2 object)
Der er her en input/output parameter af typen stringarray
Input er altid på 3 elementer og output har et variabelt antal
elementer.
Hvordan kan jeg erklære et sådant array i Delphi
Se evt. mit VB og C+ eksempel
I VB kan man bruge variabel erklæringen
DIM StrInput(2) as Variant
DIM StrOutput as Variant
I C+ kan man bruge variabel erklæringen
SafeArray Far pLoginsa = Null;
SafeArrayBound saBound[1];
Variant vLoginArray;
saBound[0].Elements=3;
saBound[0].ILBound =0;
pLoginsa =SafeArrayCreate(VT_BSTR, 1, saBound);
osv.
Håber der er nogle der har et godt bud på den tilsvarende delphikode.
Den som ikke fejler - laver heller ikke noget!!!!!!!!!!!
Hej,
Sådan definere du et variant array i delphi:
var
StrInput : OleVariant;
StrOutput : OleVariant;
Og her er en test funktion:
procedure Test;
var
StrInput : OleVariant;
StrOutput : OleVariant;
begin
StrInput := VarArrayCreate([0,1],varStrArg); // opretter string array på 2 elementer (0 til 1).
VarArrayLock(StrInput);
try
// Her tilgår du dine data.
StrInput[0] := 'Hej';
StrInput[1] := 'Med dig';
finally
VarArrayUnlock(StrInput);
end;
// Kald din dll funktion her.
// Jeg har indsat et fiktivt kald neden under:
COMFunktion_unknown(StrInput, StrOutput);
// Hvis COMFunktion_unknown returnere værdier i StrOutput
// kan du benytte den her efter.
end;
/Michael.