AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Datev SELF32.DLL benutzen

Ein Thema von juwil · begonnen am 14. Apr 2009 · letzter Beitrag vom 15. Apr 2009
Antwort Antwort
juwil

Registriert seit: 20. Mär 2009
5 Beiträge
 
Delphi 7 Professional
 
#1

Datev SELF32.DLL benutzen

  Alt 14. Apr 2009, 12:53
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
Angehängte Dateien
Dateityp: pas self32lib_tlb_943.pas (86,9 KB, 31x aufgerufen)
Jürgen Wilcken
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Datev SELF32.DLL benutzen

  Alt 14. Apr 2009, 13:01
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;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Starsky911

Registriert seit: 8. Feb 2008
Ort: Bremen
96 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Datev SELF32.DLL benutzen

  Alt 14. Apr 2009, 21:11
Bei mir sieht es so aus
Delphi-Quellcode:
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...
ich verwende allerdings von Datev die Version 3.0
und nicht die Version 2.1
  Mit Zitat antworten Zitat
juwil

Registriert seit: 20. Mär 2009
5 Beiträge
 
Delphi 7 Professional
 
#4

Re: Datev SELF32.DLL benutzen

  Alt 15. Apr 2009, 07:30
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:
procedure TSELFWrite.Connect;
var
  punk: IUnknown;
begin
  if FIntf = nil then
  begin
    punk := GetServer; //Hier ist Schluss
    Fintf:= punk as ISELFWrite;
  end;
end;
Das hängt aber sicher eher an der Registrierung der Self32.dll.



Zitat von DeddyH:
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;
Jürgen Wilcken
  Mit Zitat antworten Zitat
juwil

Registriert seit: 20. Mär 2009
5 Beiträge
 
Delphi 7 Professional
 
#5

Re: Datev SELF32.DLL benutzen

  Alt 15. Apr 2009, 07:34
Auch mit dieser Lösung geht es ein Stück weiter.
Allerdings dann auch direkt ein Fehler "Klasse nicht registriert" bei

Delphi-Quellcode:
class function CoSELFWrite.Create: ISELFWrite;
begin
  Result := CreateComObject(CLASS_SELFWrite) as ISELFWrite;
end;
Da muss ich wohl die Registrierung der Self32.dll nochmal prüfen.


Zitat von Starsky911:
Bei mir sieht es so aus
Delphi-Quellcode:
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...
ich verwende allerdings von Datev die Version 3.0
und nicht die Version 2.1
Jürgen Wilcken
  Mit Zitat antworten Zitat
Starsky911

Registriert seit: 8. Feb 2008
Ort: Bremen
96 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Datev SELF32.DLL benutzen

  Alt 15. Apr 2009, 10:32
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
  Mit Zitat antworten Zitat
juwil

Registriert seit: 20. Mär 2009
5 Beiträge
 
Delphi 7 Professional
 
#7

Re: Datev SELF32.DLL benutzen

  Alt 15. Apr 2009, 10:48
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 von Starsky911:
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
Jürgen Wilcken
  Mit Zitat antworten Zitat
juwil

Registriert seit: 20. Mär 2009
5 Beiträge
 
Delphi 7 Professional
 
#8

Re: Datev SELF32.DLL benutzen

  Alt 15. Apr 2009, 11:05
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 von juwil:
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 von Starsky911:
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
Jürgen Wilcken
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:06 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz