Einzelnen Beitrag anzeigen

Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.388 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: Parameterübergabe an externe DLL (Pointer, Array, u.s.w.)

  Alt 11. Nov 2021, 09:05
Sollte im Prinzip so funktionieren:
Delphi-Quellcode:
type
  PDocument = ^TDocument;
  TDocument = packed record
    Version: Integer;
    FileName: PAnsiChar;
    Data: Pointer;
    DataLen: Integer;
  end;

function Sign(Document: PDocument; DocumentCount: Integer;
              cipherCerts: Pointer; cipherCertCount: Integer;
              softKeyData: Pointer; softKeyDataCount: Integer): Integer;
Von den Arrays wird nur immer die Adresse des ersten Elements übergeben.

Zu TDocument:
- Für Data kann man direkt die Adresse und Größe des Puffers eines MemmoryStream verwenden.
- Filename muss irgendwo als AnsiString zwischengespeichert werden, solange TDocument in Verwendung ist (damit der Zeiger gültig bleibt).

Sollte es dann immer noch Fehler geben, vollständigen Quellcode der Umsetzung mit Deklarationen bitte.
  Mit Zitat antworten Zitat