Einzelnen Beitrag anzeigen

hewy

Registriert seit: 2. Aug 2006
Ort: Arni (Region Zürich) Schweiz
81 Beiträge
 
Delphi XE5 Enterprise
 
#18

AW: DLL Schnitstelle

  Alt 11. Jul 2020, 14:34
Also hier nochmal den ganzen Zusammenhang vielleicht habe ich mich auch nicht wirklich klar ausgedrückt.
Danke dass Ihr nochmals versuchst mich auf den Richtigen Weg zu führen!

Code:
/* 1: ---------- Das ist der C Code in der DLL ------------------------------------------------------- */
SE_API_IMPL(se_result_t, se_getCertificationId)(char **certificationId,
   uint32_t *certificationIdLength)
{
   SE_EXPORT_METHOD;

   return se_getCertificationIdEx(&g_se_ctx, certificationId, certificationIdLength);
}


/* 2: ---------- Das mein Delphi Aufruf (Schnittstelle) der DLL Funktion --------------------------- */
function se_getCertificationId(var certificationId: PAnsiChar; certificationIdLength: Cardinal): Cardinal; cdecl; external 'se-api-c.dll';

/* 3: ---------- Das mein Delphi Aufruf auf der DLL Schnittstellen funktion ------------------------ */
function SeGetCertificationId(var CertificationId: PAnsiChar): TSeReturnCode;
var
  CertificationIDLength: Cardinal;
begin
  CertificationIDLength:= 0;
  Result := TSeReturnCode(se_getCertificationID(CertificationID, CertificationIDLength));
     
     // Und hier ist CertificationID =nil

  if PCertificationID<>nil then
  begin
        ...
   ..
   .
VB Verwendet die gleiche DLL und bekommt einen Pointer und kann den Wert (CertificationID) abholen.
Mein Delphi Code nicht??
Also ist möglicherweise im oberen Bereich /* 2: ---- oder /* 3: ---- etwas falsch.
Heinrich Wyssen

Geändert von hewy (11. Jul 2020 um 14:37 Uhr)
  Mit Zitat antworten Zitat