![]() |
Datev SELF32.DLL benutzen
Liste der Anhänge anzeigen (Anzahl: 1)
Ich muss eine Buchhaltungsschnittstelle erstellen, die Datev-Dateien über Nutzung der SELF32.DLL erstellt. Leider kann man diese Daten nicht über die DAMO32.EXE erzeugen, da just die benötigten Übergabedaten in diesem Konvertierungsprogramm nicht unterstützt werden (Aussage von Datev).
Mein Problem: Ich kann die Funktionen der Self32.dll nicht aufrufen, ich lande immer in einer Zugriffsverletzung. Wahrscheinlihc mache ich beim Aufruf irgendetwas grundsätzliches falsch ...
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var MySelfWrite : SelfWrite; //aus der Self32LIB-TLB.pas SWResult:Integer; begin Initialize(MySelfWrite); MySelfWrite.Open('Datev-FBOP-BW-KNE','','C:\SELF\',2,99999); SWResult:=MySelfWrite.CreateTempSet('Datev-FBOP-BW-KNE'); showmessage('Res.:'+IntToStr(SWResult)); end; Wie muss ich die Funktionen der Dll aufrufen bzw. die Klassen verwenden/initialisieren, damit es klappt ? Die Unit für die Self32.DLL (SELF32LIB_TLB.PAS) hängt an... Jürgen |
Re: Datev SELF32.DLL benutzen
Müsste es nicht so lauten?
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var MySelfWrite : TSelfWrite; //aus der Self32LIB-TLB.pas SWResult:Integer; begin MySelfWrite := TSelfWrite.Create(nil); try MySelfWrite.Open('Datev-FBOP-BW-KNE','','C:\SELF\',2,99999); SWResult:=MySelfWrite.CreateTempSet('Datev-FBOP-BW-KNE'); showmessage('Res.:'+IntToStr(SWResult)); finally MySelfWrite.Free; end; end; |
Re: Datev SELF32.DLL benutzen
Bei mir sieht es so aus
Delphi-Quellcode:
ich verwende allerdings von Datev die Version 3.0
procedure TForm1.ButtonDatevKNEClick(Sender: TObject);
var datev : ISELFWrite; li_return: Integer; begin datev:=CoSELFWrite.Create; li_return:=datev.Open('Datev-FBOP-BW-KNE','','c:\temp\datev\',2,99999); li_return:=datev.CreateTempSet('Datev-FBOP-Vollvorlauf-KNE'); usw... und nicht die Version 2.1 |
Re: Datev SELF32.DLL benutzen
Das ist schon mal besser...
Ich bekomme jetzt in der Folge erst in der Self32Lib_tlb einen Fehler "Klasse nicht registriert", und zwar bei
Delphi-Quellcode:
Das hängt aber sicher eher an der Registrierung der Self32.dll.
procedure TSELFWrite.Connect;
var punk: IUnknown; begin if FIntf = nil then begin punk := GetServer; //Hier ist Schluss Fintf:= punk as ISELFWrite; end; end; Zitat:
|
Re: Datev SELF32.DLL benutzen
Auch mit dieser Lösung geht es ein Stück weiter.
Allerdings dann auch direkt ein Fehler "Klasse nicht registriert" bei
Delphi-Quellcode:
Da muss ich wohl die Registrierung der Self32.dll nochmal prüfen.
class function CoSELFWrite.Create: ISELFWrite;
begin Result := CreateComObject(CLASS_SELFWrite) as ISELFWrite; end; Zitat:
|
Re: Datev SELF32.DLL benutzen
Hallo juwil,
ich denke auch das es mit der Registrierung des Com-Objektes zusammen hängt. Deinstalliere doch das Objekt doch nochmal mit: regsvr32.exe /u self32.dll und installiere es neu mit: regsvr32.exe /i self32.dll |
Re: Datev SELF32.DLL benutzen
Ja, da ist was faul.
Die Deinstallation ging, aber das registrieren läuft auf einen Fehler. Ich werde erst mal die Datev-Dokumentation zur Registrierung der Dll nachlesen, denn dor sind offensicltich einige Schritte manuell in der Registry einzutragen... Danke Zitat:
|
Re: Datev SELF32.DLL benutzen
ES GEHT !
Danke. Nach der Deinstallation der DLL und erneuter Registrierung sowie manuellem Eintrag eines Registry-Eintrages [C:\WINDOWS\SYSTEM\self32.dll / DWORD -> muss auch tatsächlich in den Ordner SYSTEM] geht es ! Jürgen Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:19 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