LabVIEWForum.de
Vorhandene DLL um eine Paar Funktionen erweitern - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: DLL & externer Code (/Forum-DLL-externer-Code)
+---- Thema: Vorhandene DLL um eine Paar Funktionen erweitern (/Thread-Vorhandene-DLL-um-eine-Paar-Funktionen-erweitern)



Vorhandene DLL um eine Paar Funktionen erweitern - galilio - 13.06.2016 11:59

Hallo Zusammen,


ich möchte einen bereites existierende DLL um paar Funktionen erweitern.
Aus dieses DLL wird bereites einen User Interface bzw. Installer erstellt.

Da dieses DLL nur um eine paar Funktionen erweitert, kann ich eigentlich was ich vorher gemacht habe weiterhin verwenden?
Wie mache ich eigentlich mit der Funktionen, die gar nicht geändert sind?


Danke


RE: Vorhandene DLL um eine Paar Funktionen erweitern - rolfk - 14.06.2016 11:04

(13.06.2016 11:59 )galilio schrieb:  Hallo Zusammen,


ich möchte einen bereites existierende DLL um paar Funktionen erweitern.
Aus dieses DLL wird bereites einen User Interface bzw. Installer erstellt.

Da dieses DLL nur um eine paar Funktionen erweitert, kann ich eigentlich was ich vorher gemacht habe weiterhin verwenden?
Wie mache ich eigentlich mit der Funktionen, die gar nicht geändert sind?


Danke

Ist die DLL in LabVIEW gemacht? Wenn ja, hast Du das Projektfile und die VIs davon noch?
Falls nicht in LabVIEW gemacht ist das mit dem Projektfile und den Source code files auch noch relevant aber gehört die Frage definitiv nicht in ein LabVIEW Forum.


RE: Vorhandene DLL um eine Paar Funktionen erweitern - galilio - 14.06.2016 17:55

(14.06.2016 11:04 )rolfk schrieb:  Ist die DLL in LabVIEW gemacht?
nein
Die DLL sind in c++ erstellt aber es wurde in Labview importiert und daraus einen Intstaller erstellt.
(14.06.2016 11:04 )rolfk schrieb:  Wenn ja, hast Du das Projektfile und die VIs davon noch?
Ja

Es geht eigentlich darum um eine importierte DLL mit labview.
Dieses importierte DLL wurde noch um eine Paar Funktionen erweitert.
Da ich für die erste DLL bereist eine Installer erstellt, möchte ich nicht die Arbeit noch mal machen und von vorne anfangen.
Ich möchte was es bereits gemacht wurde weiterverwende, darum geht es.

(14.06.2016 11:04 )rolfk schrieb:  Falls nicht in LabVIEW gemacht ist das mit dem Projektfile und den Source code files auch noch relevant aber gehört die Frage definitiv nicht in ein LabVIEW Forum.



RE: Vorhandene DLL um eine Paar Funktionen erweitern - rolfk - 15.06.2016 09:15

(14.06.2016 17:55 )galilio schrieb:  Es geht eigentlich darum um eine importierte DLL mit labview.
Dieses importierte DLL wurde noch um eine Paar Funktionen erweitert.
Da ich für die erste DLL bereist eine Installer erstellt, möchte ich nicht die Arbeit noch mal machen und von vorne anfangen.
Ich möchte was es bereits gemacht wurde weiterverwende, darum geht es.

Um wieviele Funktionen geht es hier? Der Import Library Wizard wird von viel zu vielen Leuten als die einzige mögliche Art gesehen um DLL Funktionen in LabVIEW anzusprechen. Die Wahrheit ist dass er tatsächlich viel langweilige Arbeit sparen kann, wenn man eine neue DLL in LabVIEW benützen will. Aber er kann einen erfahrenen Programmierer der weiss wie man C Funktionen aufrufen muss niemals ersetzen.

Du MUSST nach dem Import Library Wizard sowieso JEDES einzelne VI ganz genau überprüfen, ob es wirklich die DLL Funktion auf die richtige Weise aufruft. Wenn Du das nicht tust, machst Du ein peut-être: es kann funktionieren oder auch nicht und wenn es das nicht tut, merkst Du das oft erst viel später wenn Du unerklärliche Crashes, fehlerhafte Daten oder dergleichen erhältst und dann auf Fehlersuche zu gehen kostet viele Male mehr Zeit und Geld dann alles von Anfang an richtig zu machen.

Wenn es nur darum geht einige wenige Funktionen zu einer bestehenden VI Library hinzuzufügen, dann vergiss den Import Library Wizard ganz schnell und füge die Funktionen direkt von Hand hinzu. Wenn das keine wirkliche Option ist weil Du nicht weisst wie man das machen muss, dann ist der Import Library Wizard ohnehin etwas was Dich im falschen Wahn lässt, dass alles in Ordnung ist mit der VI Library die Deine DLL aufruft. Die C Syntax im Headerfile das durch den Wizard verwendet wird um den Code für den Aufruf der DLL Funktion zu erzeugen ist schlicht und einfach nicht ausreichend, um eine Funktion ausführlich genug zu beschreiben, sodass ein automatisches Tool sicher den richtigen Code erzeugen kann! Oft kann das nicht einmal ein sehr erfahrener Programmierer, ohne auch die dazugehörende Funktionsbeschreibung im hoffentlich vorhandenen Manual ausführlich zu lesen. Nur kannst Du dem Import Library Wizard halt kein 500 seitiges Programmiermanual vorsetzen und hoffen dass er aus diesem Prosatext auch nur ansatzweise etwas Brauchbares herauslesen kann.

Zwar unterstützt der Import Library Wizard das Hinzufügen von Funktionen zu einer VI Library wenn Du ihn zu Beginn auf Deine bereits bestehende VI Library weist, statt eine Neue erzeugen zu lassen, aber das habe ich noch nie gemacht und auch sonst verwende ich den Import Library Wizard kaum, auch wenn ich schon sehr viele DLLs und Shared Libraries in LabVIEW integriert habe. Erstens muss ich die VIs danach doch alle noch einmal sehr ausführlich von Hand überprüfen, zweitens ist der erzeugte Code im Bemühen um lieber Safe dann Sorry zu sein meist sehr ineffizient für komplexere Parameterdatentypen und drittens finde ich die vom Wizard erzeugten Connector Panes meist schrecklich und bevorzuge ich aussagekräftigere Icons, dann das was der Wizard erzeugt.


RE: Vorhandene DLL um eine Paar Funktionen erweitern - galilio - 16.06.2016 08:35

Danke für die Antwort.

Es geht eigentlich um 6 Funktionen, die dazu kommen.
Um sicher zu gehen mache ich alles neue.
Es ist in der tat eine langweilige Arbeit, aber es muss gemacht werden.


RE: Vorhandene DLL um eine Paar Funktionen erweitern - galilio - 04.10.2016 09:20

Hallo Rolf,


man kann aber bei einen DLL Import auch sagen welche Funktionen, die neue importieren werden müssen in dem man das Häckschen einfach setzen oder weglassen.

In dem Fall, wenn die alten Funktionen gleich bleiben und nur das Header File um paar Funktionen erweitert ist dann ist das Häckschen bei der neuen zu setzen und der Rest des Funktionen muss deselektiert werden.


RE: Vorhandene DLL um eine Paar Funktionen erweitern - rolfk - 08.10.2016 23:11

(04.10.2016 09:20 )galilio schrieb:  Hallo Rolf,


man kann aber bei einen DLL Import auch sagen welche Funktionen, die neue importieren werden müssen in dem man das Häckschen einfach setzen oder weglassen.

In dem Fall, wenn die alten Funktionen gleich bleiben und nur das Header File um paar Funktionen erweitert ist dann ist das Häckschen bei der neuen zu setzen und der Rest des Funktionen muss deselektiert werden.

Natürlich! Dem habe ich nicht widersprochen, sondern sogar angegeben dass man eine bestehende Library als Anfangspunkt für eine Erweiterung nehmen kann. Aber das ändert rein gar nichts an den anderen Dingen die ich sagte. Wegen ein paar Funktionen den Library Wizard anwerfen ist eigentlich Humbug. Und wenn das ist, weil man die VIs selber eigentlich nicht machen könnte, eigentlich sogar gemeingefährlich. Denn wenn Du sie nicht selber machen kannst, kannst Du sie auch nicht überprüfen und verbessern wenn sie aus dem Wizard kommen. Und ganz entgegen dem Namen kann dieser Wizard auch nicht zaubern, denn das wäre die einzige Möglichkeit um aus der eingeschränkten C Syntax des Headerfiles ein ganz sicher korrektes VI zu erzeugen.