Thema: Delphi XE2 übergabe an C DLL

Einzelnen Beitrag anzeigen

Supergrobie

Registriert seit: 22. Okt 2003
Ort: Aachen
28 Beiträge
 
Delphi XE7 Professional
 
#1

XE2 übergabe an C DLL

  Alt 30. Jun 2014, 10:04
Langsam hab ich den Schweiß auf der Stirn.
Bisher habe ich eine "externe" DLL die mit IBAN und BIC zurück liefert mit Delphi 2007 einfach per PCHAR ansprechen können.
In den Rückgabe Strings hatte ich dann die richtigen Werte drin.
Seit der Umstellung auf XE2 funktioniert das nicht mehr... Ich habe schon PAnsiString getestet. Irgendwie komm ich da nicht weiter weil ich auch
diese ganze String zu Pointer zusammen mit Unicode nicht so ganz kapiere.
Habe im Netz und im Forum schon gesucht bin aber zu keinem Sinnvollen Ergebnis gekommen.

Für Hilfe wäre ich sehr dankbar!

Code:
function sevDTA_Init(sInit: PChar): LongInt; stdcall; external 'sevDTA20.DLL';
procedure sevDTA_Close(Handle: LongInt); stdcall; external 'sevDTA20.DLL';
function sevDTA_BLZFileDate(sDatum: PChar): LongInt; stdcall; external 'sevDTA20.DLL';
function sevSEPA_CalcIBAN(sBLZnr, sKto, sBIC, cIBAN : PChar) : LongInt; stdcall; external 'sevDTA20.DLL';
So sah die Deklaration bisher aus.

Angesprochen habe ich es dann so:

Code:
function Get_CalcIBAN(sBLZnr, sKtonto, sBIC: String): String;
var sIBAN : String;

begin
   cobresult := '';
   SetLength(IBAN, 30);
   IBAN := '                             ';
   SetLength(sBIC, 12);
   sBIC := '           ';

   case sevSEPA_CalcIBAN(StrToDLL(sBlzNr), StrToDLL(sKtonto), StrToDLL(sBic), StrToDLL(sIBAN)) of
      ERR_SEPA_CALCIBAN_ERROR : result := '';
      ERR_SEPA_CALCIBAN_WARNING : Begin result := IBAN;cobresult := sBIC; end;
      ERR_SEPA_CALCIBAN_NOUSAGE: result := '';
      ERR_BLZ_WRONG_FORMAT: result := '';
      ERR_BLZ_KTONR_WRONG: result := '';
      ERR_BLZ_NOT_FOUND: result := '';
   else
   begin
      result := sIBAN;
      cobresult := sBIC;
   end;
   end;
end;
Was muss ich tun damit das in XE2 wieder funktioniert?

DANKE!
Stefan
  Mit Zitat antworten Zitat