![]() |
AW: DDBAC Fehler: "Interface nicht unterstützt"
Danke für deine Hilfe. Ich werde das ausprobieren.
|
AW: DDBAC Fehler: "Interface nicht unterstützt"
Leider habe ich den gleichen Fehler.
Erst habe ich Delphi beenden. Dann habe ich die importierten Typenbibliotheken aus Imports gelöscht. Danach DDBACSDK gelöscht. Die aktuellste Version heruntergeladen und Installiert. HBCI-Administration aufgerufen und neu Synchronisiert (Ohne Fehler). Dann Delphi wieder gestartet und Projekt aufrufen. Kompilierungsversuch (zur Kontrolle) -> Fehler, denn die Typenbibliotheken fehlen noch Typenbibliotheken import. Projekt Kompiliert -> Fehlerfrei. Zur Laufzeit dann wieder der gleiche Fehler. Es wundert mich ja sowieso, denn in dem Testprojekt (welches ich im vorletzten Post angehängt hatte) tritt der Fehler nicht auf. Dem zur Folge gehe ich mal von einer korrekten Installation von DDBAC aus. Mein Klasse scheint aber soweit zu funktionieren, denn sie läuft ja bei dir. Ich bin jetzt bei der Fehlersuche etwas Ratlos, wie ich da weiter vorgehen könnte. Ich werde mir jetzt erst mal ein weiteres Testprogramm schreiben, in dem ich die Klasse DDBACHelperObject verwenden. Ich befürchte allerdings, dass die dort läuft :roll: |
AW: DDBAC Fehler: "Interface nicht unterstützt"
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,
ich würde an Deiner Stelle nochmals das komplette SDK deinstallieren und dabei auch den DDBACCleaner.exe bemühen, der dabei war. Anschließend zur Sicherheit und wegen der Paranoia :-D alle Dateien in folgenden (Standard-Installations)Pfaden löschen (soweit noch vorhanden): C:\Program Files (x86)\Common Files\DataDesign\DDBAC\*.* C:\Program Files (x86)\DataDesign\DDBACSDK\*.* Dann mit äußerster Vorsicht die folgenden beiden DDBAC*.CPL-Dateien Pfad löschen: C:\Windows\SysWOW64\DDBACCPL.CPL (das ist der HomeBanking Admin in der Systemsteuerung) C:\Windows\SysWOW64\ddBACCTM.cpl Desweiteren noch alle Dateien aus dem Verzeichnis: C:\Users\<DeinUserName>\AppData\Roaming\DataDesign \DDBAC löschen Dort sind die jeweiligen Bank-und Userparameterdateien *.upd,*.bpd,*.spa sowie die ddusers.dat beheimatet, die Du zuvor über den HomeBanking Admin angelegt hattest. Und wegen des Peace of Mind noch alle "DDBACSWIFT_TLB.*" und alle "BankingApplicationComponents_TLB.*" löschen, die Du auf Deinem Rechner finden konntest. Dann würde ich in der Registry alle Schlüssel und CLSIDs mit "DataDesign" und "DDBAC" löschen, falls denn noch welche übriggeblieben sein sollten. (Auf eigenes Risiko wohlgemerkt!) Abschließend die Maschine neu durchstarten, das neueste DDBAC-SDK installieren und HomeBanking Kontakt mit aktivem Bankkonto wieder einrichten. Dann würde ich die beiden Typelibs neu erstellen "BankingApplicationComponents_TLB.pas" aus ddBAC.dll sowie "DDBACSWIFT_TLB.pas" aus DDBACMT9.dll Die genannten DLLs sind im Verzeichnis C:\Program Files (x86)\Common Files\DataDesign\DDBAC zu finden. Im Kopf der erzeugten PAS-Dateien steht dann normalerweise das aktuelle Systemdatum sowie die Herkunft. Die beiden Typelibs (pas-Dateien) platzierst Du dann direkt in Dein Unit-Verzeichnis wie auf beigefügtem Screenshot ersichtlich. Also nicht mit Imports arbeiten. Viel Erfolg :-D |
AW: DDBAC Fehler: "Interface nicht unterstützt"
Liste der Anhänge anzeigen (Anzahl: 1)
Hab jetzt noch mal alles so gemacht, wie du es vorgeschlagen hat. Leider mit dem altbekannten Ergebnis.
Ich bin mir gar nicht mehr so sicher, dass das was mit DDBAC selbst zu tun hat. Leider kann ich diese Zeile
Delphi-Quellcode:
nicht weiter zerlegen bzw. debuggen, weil mir einfach das Wissen bezüglich Interfaces fehlt. Ich weiß zwar grundlegend was da passiert, aber für debuggen reicht das leider nicht aus.
aBlob := IUnknown(aHIKAZ.Item['UmsaetzeGebucht1', 1]) as IBACDataObject2;
Ich habe jetzt die DDBACHelperObject.pas ein dem Projekt BankTest3 verwendet. leider ohne Erfolg. Noch eine Idee? Langsam verzweifele ich. Wenn ich das direkt in einer Form verpacke läuft's. Wenn du meine Klasse nutzt läuft's auch. Wenn ich meine Klasse nutze läuft's nicht? BankTest3 hänge ich mal an (Drin enthalten sind auch die beiden BankingApplicationComponents_TLB.pas und DDBACSWIFT_TLB.pas). |
AW: DDBAC Fehler: "Interface nicht unterstützt"
Hallo,
hmmm. Versuchsweise hatte ich mal unmittelbar vor Deinem o.g. "soft" Typecast die folgende Zeilen in die Projekte BankTest2 und BankTest3 eingefügt.
Delphi-Quellcode:
und zuvor anIID als TGUID- und p als Pointer-Variable deklariert. Dann habe ich noch sichergestellt,
anIID := StringToGUID('{DD000122-3E33-11D1-A006-0060088FF6B8}'); // TGUID von IBacDataObject2
if IUnknown(aHIKAZ.Item['UmsaetzeGebucht1', 1]).QueryInterface(anIID,p) <> 0 Then Begin ShowMessage('Fehler'); // VCL.Dialogs in uses clause ! Exit; End else Begin if Assigned(p) then ShowMessage('Alles klar'); End; dass das Interface IBacDataObject2 korrekt in der Registry steht. Ergebnis: BankTest2 : Alles klar, BankTest3: Fehler. Damit ist klar, dass aHIKAZ bei BankTest3 noch nicht richtig initialisiert zu sein scheint. Dachte zunächst an ein fehlendes CoInitializeEx, aber wir haben es doch hier mit keiner MultiThreaded-Applikation zu tun. Vielleicht liegt es auch an den beiden fehlenden Container-Objekten in BankTest3. Da würde ich mal weiterschauen. MfG |
AW: DDBAC Fehler: "Interface nicht unterstützt"
Liste der Anhänge anzeigen (Anzahl: 1)
Yep,
genau das wars. Anbei die funktionierende DDBACHelper-Unit. MfG |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:21 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 by Thomas Breitkreuz