Einzelnen Beitrag anzeigen

blackfin
(Gast)

n/a Beiträge
 
#2

AW: String array als Parameter für externe DLL?

  Alt 27. Jul 2010, 13:47
BSTR* ist ein Pointer auf ein C-string-Array.
(Ein Sternchen beim Typ ist ein Pointer auf den Typ in C, ein Sternchen bei der Variable selbst würde dem "var" Statement von Delphi entsprechen)
Normalerweise übergibt man die Argumente einer C-DLL über ein array of PChar:

Delphi-Quellcode:
var
  ArgCount: Integer ;
  Arg : array of PChar;
  PArg : ^PChar;
begin
   SetLength(Arg,2);
   Arg[0]:= xxx // Param 1
   Arg[1]:= xxx // Param 2
   ArgCount := High(Arg)+1 ; // Anzahl der Parameter steht in ArgCount
   PArg:=@Arg[0]; // PArg übergibst du dann an die Funktion
end;
Wenn ich keine Fehler gemacht habe (unwahrscheinlich ), müsste sich die Header-Funktion so übersetzen lassen:

function Identify(bstrTemplates : ^PChar; lCount: Int64; lIndex: Int64; lRetCode: Int64): Integer; cdecl; external '<Dateiname der DLL>';
...korrigiert mich, ich bin kein C-Tier

Geändert von blackfin (27. Jul 2010 um 14:02 Uhr)
  Mit Zitat antworten Zitat