Vielen Dank für eure Hilfe versuche.
Jetzt habe ich auch begriffen wie man hier korrekt Code schnipsel einfügt!
Insgesammt sind es über 50 Funktionen, die meisten sind ok nur 'se_getCertificationId' will nicht so recht.
So sehen die Einbindungen der
DLL Funktionen aus:
Delphi-Quellcode:
function se_getImplementationVersionString(): PAnsiChar;
cdecl;
external '
se-api-c.dll';
function se_getImplementationVersion(): PAnsiChar;
cdecl;
external '
se-api-c.dll';
function se_getUniqueId(): PAnsiChar;
cdecl;
external '
se-api-c.dll';
function se_getCertificationId(
var certificationId: PAnsiChar; certificationIdLength: Cardinal): Cardinal;
cdecl;
external '
se-api-c.dll';
function se_getLifeCycleState(
var lcs: Cardinal): Cardinal;
cdecl;
external '
se-api-c.dll';
function se_getMaxNumberOfClients(
var maxNumberClients: Cardinal): Cardinal;
cdecl;
external '
se-api-c.dll';
Und hier die Aufrufe dazu:
Delphi-Quellcode:
function SeGetPinStatus(var PINState: Cardinal): TSeReturnCode;
function SeGetUniqueId: string;
function SeGetCertificationId(var CertificationId: string): TSeReturnCode;
function SeAuthenticateUser(UserId: string; PIN: array of Byte; var AuthenticationResult: TSeAuthenticationResult; var RemainingRetrie: ShortInt): TSeReturnCode;
function SeGetLifeCycleState(var lcs: TSeLifeCycleState): TSeReturnCode;
Und die Implementation dazu (Hier mache ich eiregend etwas falsch und komme nicht dahinter was wie gemacht werden muss.)
Delphi-Quellcode:
function SeGetCertificationId(
var CertificationId:
string): TSeReturnCode;
var
PCertificationID: PAnsiChar;
PCurrent: PAnsiChar;
CertificationIDLength: Cardinal;
i: Cardinal;
begin
PCertificationID :=
nil;
// VB übergibt PCertificationID = &H000000000 und CertificationIDLength = 0
Result := TSeReturnCode(se_getCertificationID(PCertificationID, CertificationIDLength));
// Zurück bekomme ich im VB Code BSI-K-TR-0000-2019 für PCertificationID und 18 für CertificationIDLength
// Mit Delphi und der Zeile oben einen Fehlercode
// Da werde ich die Parameter entsprechend übernehme sobalt
// mir se_getCertificationID was brauchbares liefert.
// Aktuell erhalte ich hier Access Violation oder der Result code sagt
// etwas von 'missing parameter'
end;
Vielen Dank schon mal für die Auswertung meiner Angaben und etwelche wie was wo zu tun ist Hints!