![]() |
AW: DLL Schnitstelle
Zitat:
Das sind allgemeine Grundlagen, die fast überall gleich sind, weil Viele es so machen. Ich hoffe nur jemand macht sein teures Wormlaufwerk nicht kaputt. Quelle: ![]() |
AW: DLL Schnitstelle
Ja richtig danke für den Hinweis!
Sollte heissen: if CertificationID <> nil then begin |
AW: DLL Schnitstelle
Einmal grundsätzlich: man übergibt 2 Parameter an die Funktion, die auch beide von der DLL überschrieben werden, Rückgabe ist ein Fehlercode. Daraus folgt, dass man auch beide Parameter als Var-Parameter deklarieren muss. Ich habe die Cryptovision-API gerade nicht zur Hand, aber mit ziemlicher Sicherheit gibt die Funktion im 2. Parameter entweder die Anzahl der tatsächlich geschriebenen Bytes des 1. Parameters zurück, oder falls dieser zu knapp dimensioniert ist, die Anzahl der benötigten Bytes. Man kann nun also die benötigten Bytes ermitteln, indem man die Funktion mit den Werten nil für den PAnsiChar und 0 für die Länge übergibt. Anschließend wertet man die zurückgegebene Länge (deshalb Var-Parameter) aus, reserviert entsprechenden Speicher und übergibt diesen dann wie vorhin schon einmal erwähnt.
|
AW: DLL Schnitstelle
Heiii danke DeddyH das war das Problem.
function se_getCertificationId(var certificationId: PAnsiChar; certificationIdLength: Cardinal): Cardinal; cdecl; external 'se-api-c.dll'; Geändert zu: function se_getCertificationId(var certificationId: PAnsiChar; var certificationIdLength: Cardinal): Cardinal; cdecl; external 'se-api-c.dll'; Und schon funzt alles. Viele Dank. Auch an alle Andern die an meiner 30 Jährigen Delphi Erfahrung gezweifelt haben. Heiri |
AW: DLL Schnitstelle
Ja, immer diese dummen Sternchen in C, die kann man leicht übersehen :wink:
|
AW: DLL Schnitstelle
Zitat:
Zitat:
Wie dem auch sei. |
AW: DLL Schnitstelle
Was willst Du mir mit diesem Kommentar mitteilen?
|
AW: DLL Schnitstelle
Zitat:
|
AW: DLL Schnitstelle
Zitat:
String/PChar = AnsiString/PAnsiChar bis Delphi 2007 String/PChar = UnicodeString/PWideChar seit Delphi 2009 und nicht zu verwechseln mit WideString, welches kein Delphi-Typ ist, sondern nur die Kapselung der OLE32-String-API. |
AW: DLL Schnitstelle
Zitat:
Hewy, dreißig Jahre Delphi-Erfahrung sind zwar gut und schön, aber mit dreißig Sekunden erhöhtem Leseverständnisses und/oder stumpfen Ausprobieren meiner Vorschläge hätte viel Zeit und Nerven aller Beteiligten gespart werden können. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:50 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz