Habe es dann endlich doch noch gefunden. Problem war das dynamische Array. Damit kam die C
Dll nicht zurecht. Ich vermute mal wegen dem length prefix. Hier der Vollständigkeit wegen noch wie es jetzt funktioniert:
Type
Delphi-Quellcode:
type
TArrayOfWideString= array[0..999] of WideString;
Deklaration
function Identify(var ATemplates: TArrayOfWideString; ATemplatesCount: int64; var ATemplateIndex: int64; var ARetCode: int64): Integer; cdecl; external 'Identify.dll';
Verwendung
Delphi-Quellcode:
var
templateIndex, retCode: int64;
templates: TArrayOfWideString;
retval: integer;
//TODO: range checking for TArrayOfWideString needed
templates[0] := 'template1';
templates[1] := 'template2';
retVal := Identify(templates, 2, scanIndex, retCode);