2 Probleme habe ich aktuell die nicht nicht ganz verstehe.
Wir setzen eine
DLL von A-Trust ein zum auslesen einer Smartcard auf einem USB Stick.
Das ganze funktioniert eigentlich einwandfrei, wenn ich mein Programm als DEBUG Build laufen lassen.
Schalte ich auf RELEASE um, dann führen einige
DLL Funktionsaufrufe zu einer
Access Violation wenn meine procedure in Delphi beendet wird, welche die
DLL Funktion aufruft.
Dann habe ich mit einer
DLL Funktion das Problem das sie in Formclose ohne Fehler und in einer Procedure mit Fehler am Ende der Procedure aufgerufen wird.
z.b diese Funktion :
Code:
long Finalize(void* ptr);
Code:
function Finalize(ptr:integer):long; stdcall; external 'asignRKCom.dll';
// Funktioniert
Code:
procedure Tfmain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Finalize(h);
end;
// Ergibt einen Fehler
Code:
procedure Tfmain.myFinalize;
var erg:integer;
begin
erg:=Finalize(h); // Erg = 0;
end; // <---- Fehler
procedure Tfmain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
myFinalize;
end;
Ich weiß nicht ob es ein Fehler meiner Deklaration ist oder Delphi ein Problem hat.
Oder es am Namen Finalize liegt.
Edit :
ich habe das ganze einmal anders Deklariert
Code:
function _Finalize(ptr:integer):long; stdcall; external 'asignRKCom.dll' name 'Finalize';
Das brachte auch nichts.