AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

DLL für Verwendung in Navision

Ein Thema von Thanatos81 · begonnen am 18. Feb 2008 · letzter Beitrag vom 18. Feb 2008
Antwort Antwort
Seite 1 von 2  1 2      
Thanatos81
(Gast)

n/a Beiträge
 
#1

DLL für Verwendung in Navision

  Alt 18. Feb 2008, 09:43
Guten Morgen allerseits!


Ich habe für eine DLL geschrieben, welche sich mit Delphi und auch VBA unter Excel wunderbar verwenden lässt. Die DLL an sich ist also soweit in Ordnung.

Nun möchte ein Anwender diese DLL in Navision einbinden, dies schlägt aber wohl fehl, da die DLL nicht registriert werden kann. Das kann sie nicht weil es a) bisher nicht nötig war und b) ich keinen Dunst habe, was ich dafür machen muss, was für Voraussetzungen erfüllt sein müssen etc.

Hat jemand schon Erfahrung damit, DLLs für Navision bereit zu stellen und kann mir den einen oder anderen Fingerzeig geben, oder kennt vielleicht sogar ein Tutorial?

Schönen Gruß,
Thomas
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: DLL für Verwendung in Navision

  Alt 18. Feb 2008, 10:14
Zitat von Thanatos81:
... dies schlägt aber wohl fehl, da die DLL nicht registriert werden kann.
Du meinst, Regsvr32 deineDLL.dll meldet einen Fehler ?
Dann liegt das daran, dass deine DLL noch Abhändigkeiten zu anderen DLLs (oder Packages) hat, die auf dem Zielrechner fehlen.
Mit dem Dependency Walker kann du deine DLL (auf dem Zielrechner !!!) laden. Das Tool meckert dann fehlende DLLs an.
Andreas
  Mit Zitat antworten Zitat
Thanatos81
(Gast)

n/a Beiträge
 
#3

Re: DLL für Verwendung in Navision

  Alt 18. Feb 2008, 13:13
Nee, die Dependencies sind schon OK. Die DLL war nie dafür gedacht registriert zu werden, dementsprechend bekomme ich nun:
"[...] der DllRegisterServer-Eingangspunkt wurde nicht gefunden."

Meine Frage ist jetzt, was ich unternehmen muss, damit meine DLL registriert werden kann. Ich werde wohl eine DllRegisterServer exportieren müssen

Nur was gehört darein? Dann brauchts ja wohl auch noch eine DllUnregisterServer usw.
  Mit Zitat antworten Zitat
franktron

Registriert seit: 11. Nov 2003
Ort: Oldenburg
1.446 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#4

Re: DLL für Verwendung in Navision

  Alt 18. Feb 2008, 14:08
Schaut mal was GOOGLE so alles findet

LINK
Frank
Tux sein Lieblingsquellcode
While anzfische<TuxSatt do begin
Fisch:=TFisch.Create; Tux.EssenFisch(Fisch); Fisch.Free;inc(anzfische); end;
  Mit Zitat antworten Zitat
Thanatos81
(Gast)

n/a Beiträge
 
#5

Re: DLL für Verwendung in Navision

  Alt 18. Feb 2008, 14:33
OK, da steht auch nur, dass die DLL registriert sein muss, und wie man es macht. Aber wie ändere ich meine in Delphi geschriebene DLL so, dass ich sie registrieren kann?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: DLL für Verwendung in Navision

  Alt 18. Feb 2008, 14:34
Füge die Funktionen in den Export ein.
Markus Kinzler
  Mit Zitat antworten Zitat
Thanatos81
(Gast)

n/a Beiträge
 
#7

Re: DLL für Verwendung in Navision

  Alt 18. Feb 2008, 14:42
Also, ich habe folgende DLL:

Delphi-Quellcode:
library pvrDLL;

uses
  SysUtils,
  Forms,
  ActiveX,
  RemoteViewXLib_TLB,
  ConnThread in 'ConnThread.pas';

{$R *.res}

var
  dummyForm: TForm;

procedure DLLStart; stdcall;
begin
  //initialisieren
  OleInitialize(nil);
  dummyForm := TForm.Create(nil);
  dummyForm.Visible := false;
  RemoteView := TRemoteViewX.Create(dummyForm);

  RemoteView.Parent := dummyForm;
  RemoteView.Left := 5;
  RemoteView.Top := 5;
  RemoteView.Width := 10;
  RemoteView.Height := 10;
end;

procedure DLLStop; stdcall;
begin
  //finalisieren
  RemoteView.Disconnect;
  FreeAndNil(RemoteView);
  FreeAndNil(dummyForm);
  OleUninitialize;
end;

procedure ConnectTo(IP: PChar; CamNo: Integer; UserID, UserPW: PChar); stdcall;
var
  myConnThread: TConnThread;
begin
  RemoteView.IPAddress := IP;
  RemoteView.CCDNo := CamNo;
  RemoteView.LoginID := UserID;
  RemoteView.LoginPwd := UserPW;

  myConnThread := TConnThread.Create;
end;

function IsConnected: WordBool; stdcall;
begin
  result := RemoteView.IsConnected;
end;

function getPicture(fileName: PChar; EnableOSD, Transparent: WordBool) :WordBool; stdcall;
begin
  result := RemoteView.SnapShoot(fileName, EnableOSD, Transparent);
end;

exports
  DLLStart,
  DLLStop,
  ConnectTo,
  IsConnected,
  getPicture;

begin

end.
Versuche ich nun diese DLL per regsvr32 zu registrieren bekomme ích
Zitat von regsvr32 pvrDLL.dll:
---------------------------
RegSvr32
---------------------------
pvrDLL.dll wurde geladen, aber der DllRegisterServer-Eingangspunkt wurde nicht gefunden.

Diese Datei kann nicht registriert werden.
---------------------------
OK
---------------------------
ist ja auch logisch, eine "DllRegisterServer" gibts bei mir ja nicht. Meine Frage ist nun, was in diese Prozedur/Funktion (?) reingehört, damit ich dies umsetzen kann. Ziel ist es, dass regsvr32 pvrDLL.dll nicht mehr fehl schlägt damit Navision diese dann hoffentlich nutzen kann.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: DLL für Verwendung in Navision

  Alt 18. Feb 2008, 14:47
Du musst diese im Interface der Dll exportieren
http://msdn2.microsoft.com/en-us/library/ms682162.aspx
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: DLL für Verwendung in Navision

  Alt 18. Feb 2008, 14:47
Delphi-Quellcode:
exports
  DllGetClassObject,
  DllCanUnloadNow,
  DllRegisterServer,
  DllUnregisterServer;
Die Implementation ist in der Unit ComServ, welche eigetnlich über deine *TLB.pas mit eingebunden sein könnte.

Wenn du keinen COMServer hast (verstehe zwar nicht, warum man das dann registrieren sollte ), dann schreibst du dir halt die Funktionen mit den Standardantworten (E_NoEntrance bzw. S_OK).

PS: Und was ist mit dem Link von franktron?
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Thanatos81
(Gast)

n/a Beiträge
 
#10

Re: DLL für Verwendung in Navision

  Alt 18. Feb 2008, 15:01
Die *TLB ist nicht von mir.

Ich erklär mal kurz was überhaupt Sinn und Zweck ist. Unser Kunde hat von uns eine Kamerainstallation per PCI-Karten. Diese liefern eine ActiveX mit. Bisher ist dieses ActiveX in eine Internetseite angebunden, dort können die Livestreams dann angeschaut werden.

Nun möchte der Kunde die Streams teilweise auch Einzelbilder in Navision sehen können. Unter Delphi kann ich das ActiveX ohne Probleme einbinden und nutzen. Der Kunde kann dies in Navision nicht, da er keine ActiveX-Controls einbinden kann, welche eine grafische Oberfläche haben. Wird die GUI des ActiveX nicht genutzt, bekommt man aber keine Verbindung. Also habe ich die oben gepostete DLL quasi als Wrapper für das ActiveX geschrieben, diese erzeugt ein Snapshot und speichert den unter dem übergegeben Namen.

Unter Delphi und Excel (VBA) konnte ich die Wrapper-DLL auch erfolgreich nutzen. Nun sagt aber der Kunde, er könne in Navision nur registrierte DLLs nutze, meine lässt aber nicht registrieren.

//Edit
Habe jetzt mal einfach die exports um die Angaben von shmia erweitert. Das Registrieren funktioniert nun auch. Aber reicht das? Muss ich nicht noch eigentlich eine GUID erzeugen und WEiteres machen?

Der Link von franktron beschreibt, wie Navision selber die DLL registrieren kann, die es nutzen soll, damit man die nicht an jedem Arbeitsplatz von Hand machen muss, oder hab ich das völlig falsch verstanden?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 18:42 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