[EDIT]
Ist keine
COM-
Dll. Ist eine
DLL zum ansteuern eines Venescanners.
[/EDIT]
Type
DLL
function Identify(ATemplates: PPChar; ATemplatesCount: Cardinal; var ATemplateIndex: Cardinal; var ARetCode: Cardinal): Integer; cdecl; external 'Identify.dll';
Aufruf
Delphi-Quellcode:
var
scanIndex, retCode: Cardinal;
Args: array of PChar;
PArg: PPChar;
ArgCount: Cardinal;
begin
SetLength(Args, 2);
Args[0] := 'template1';
Args[1] := 'template2';
PArg := @Args[0];
ArgCount := High(Args) + 1;
Identify(PArg, ArgCount, scanIndex, retCode);
end;
Ergibt dann eine EAccessViolation
=> Acces violation at address 7C80A300 in module 'kernel32.dll'. Read of adress...
Wenn ich jetzt anstelle des von dir vorgeschlagenen ^PChar in der Deklaration einen PWideChar verwende und anstelle eines array of PChar ein array of WideChar verwende kommt es beim Aufruf wenigstens nicht mehr zu einer
AV. Allerdings macht die Funktion auch nicht dass was sie soll.
So langsam aber sicher blick ich gar nicht mehr durch.