Einzelnen Beitrag anzeigen

schotti65

Registriert seit: 3. Sep 2010
Ort: Berlin
53 Beiträge
 
Delphi XE5 Enterprise
 
#112

AW: SEPA Komponente gesucht

  Alt 29. Okt 2013, 17:17
Es klappt leider nicht, ich stell mich scheint's zu doof mit den Stringtypen an.
ich will erstmal nur die IBAN berechnen, der folgende Code endet immer mit Laufzeitfehler ("Access violation"):

Delphi-Quellcode:
type TWasBinIchWohl = AnsiString; // klappt nicht
//type TWasBinIchWohl = PAnsiChar; // klappt auch nicht

type TSevDTA_Init = function(sInit : TWasBinIchWohl) : longint; stdcall;
type TSevDTA_BLZSetPath = function(sPath : TWasBinIchWohl) : longint; stdcall;
type TSevSEPA_CalcIBAN = function(blz, kto, bic, iban : TWasBinIchWohl) : longint; stdcall;

hSevDTALib : THandle;
sevDTA_Init : TSevDTA_Init;
sevDTA_BLZSetPath : TSevDTA_BLZSetPath;
sevSEPA_CalcIBAN : TSevSEPA_CalcIBAN;

...

// versuche, DLL zu laden
cmd := '.\sepa\sevdta20.dll';
self.hSevDTALib := LoadLibrary(PChar(cmd));

// lade Funktionspointer
@self.sevDTA_Init := GetProcAddress(self.hSevDTALib, 'sevDTA_Init');
@self.sevDTA_BLZSetPath := GetProcAddress(self.hSevDTALib, 'sevDTA_BLZSetPath');
@self.sevSEPA_CalcIBAN := GetProcAddress(self.hSevDTALib, 'sevSEPA_CalcIBAN');

// Initialisierung
Handle := self.sevDTA_Init('');
self.sevDTA_BLZSetPath('.\sepa');

...

// bis hierher alles gut, jetzt der CB vom "IBAN_Rechner":

sKto, sBlz, sBic, sIban : TWasBinIchWohl;
lResult : longint;

// IBAN-Kontonummer berechnen
sKto := TWasBinIchWohl(self.EditKto.Text);
sBlz := TWasBinIchWohl(self.EditBlz.Text);
sBic := TWasBinIchWohl(strutils.dupestring(' ', 12));
sIban := TWasBinIchWohl(strutils.dupestring(' ', 23));

lResult := self.sevSEPA_CalcIBAN(skto, sBlz, sBIC, sIBAN);
// und tschuess...
Ich hab's auch am Ende mit ein paar Blanks mehr hie und da versucht, klappt alles nicht.
Jemand eine Idee?
Hab ich da was grundsätzliches vergessen bzgl. DLL einbinden mit Funktionen mit >1 Parametern (sevDTA_BLZSetPath klappt ja)?
Bei diesem Projekt benutze ich Delphi 2007.
  Mit Zitat antworten Zitat