LabVIEWForum.de
DLL Import automatisieren - 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: DLL Import automatisieren (/Thread-DLL-Import-automatisieren)



DLL Import automatisieren - CS - 12.02.2015 18:04

Hallo

Ich benutze LabVIEW 2014 und möchte mehrere DLLs importieren, die sehr viele Funktionen (>2000) bereitstellen.
Prinzipiell geht das über das "Tools / Import / Shared Library" sehr einfach. Bis auf die Tatsache, dass man die Schnittstellen-Definition von manchen Funktionen manuell nachbearbeiten muss.

Nun zu meinen Fragen:
1) Da ich die Schnittstellen-Definition von Funktionen nachbearbeiten muss, würde ich gern ein eigenes Tool schreiben, welches aus (DLL + Header) die passenden (VI und LVLIB) automatisch generiert. Gibt es eine LabVIEW API, um mit einer Programmiersprache wie C++ eigene VIs zu generieren?
Oder gibt es eine Formatbeschreibung der VIs?

Falls dies nicht möglich ist:

2) Bietet LabVIEW zumindest die Möglichkeit eine Beschreibung der Funktionen und deren Parameter automatisch zu generieren; z.B. aus einer entsprechenden Dokumentation in der Header Datei? In welchem Format müsste man eine solche Schnittstellen-Beschreibung anlegen?

Ich hoffe, dass mir jemand in diesem Formum weiterhelfen kann.

Gruß,
Christian


RE: DLL Import automatisieren - GerdW - 12.02.2015 19:08

Hallo Christian,

Zitat:Gibt es eine LabVIEW API, um mit einer Programmiersprache wie C++ eigene VIs zu generieren?
Es gibt ein API, um mit LabVIEW neue VIs automatisch zu erstellen: LabVIEW Scripting!

Zitat:Oder gibt es eine Formatbeschreibung der VIs?
Was schwebt dir hier vor?

Zitat:Bietet LabVIEW zumindest die Möglichkeit eine Beschreibung der Funktionen und deren Parameter automatisch zu generieren
Siehe oben: Scripting!

Zitat:In welchem Format müsste man eine solche Schnittstellen-Beschreibung anlegen?
Das bleibt deiner Programmierung des Scriptings überlassen. Textdateien sind meist sehr einfach zu handhaben…


RE: DLL Import automatisieren - rolfk - 12.02.2015 21:38

(12.02.2015 18:04 )CS schrieb:  Hallo

Ich benutze LabVIEW 2014 und möchte mehrere DLLs importieren, die sehr viele Funktionen (>2000) bereitstellen.
Prinzipiell geht das über das "Tools / Import / Shared Library" sehr einfach. Bis auf die Tatsache, dass man die Schnittstellen-Definition von manchen Funktionen manuell nachbearbeiten muss.

Nun zu meinen Fragen:
1) Da ich die Schnittstellen-Definition von Funktionen nachbearbeiten muss, würde ich gern ein eigenes Tool schreiben, welches aus (DLL + Header) die passenden (VI und LVLIB) automatisch generiert. Gibt es eine LabVIEW API, um mit einer Programmiersprache wie C++ eigene VIs zu generieren?
Oder gibt es eine Formatbeschreibung der VIs?

Falls dies nicht möglich ist:

2) Bietet LabVIEW zumindest die Möglichkeit eine Beschreibung der Funktionen und deren Parameter automatisch zu generieren; z.B. aus einer entsprechenden Dokumentation in der Header Datei? In welchem Format müsste man eine solche Schnittstellen-Beschreibung anlegen?

Ich hoffe, dass mir jemand in diesem Formum weiterhelfen kann.

Gruß,
Christian

Gerd hat es Dir schon erklärt. Auf LabVIEW Ebene ist LabVIEW Scripting die Antwort. Aber....
Dein Vorhaben in Ehren, Du wirst sehr schnell merken dass ein solches Tool eine Riesenarbeit ist und es ist sehr unwahrscheinlich dass es Dir gelingt ein Tool zu schreiben dass weniger Nacharbeit erfordert dann der Library Import Wizard.

Zwar ist die C header Deklaration tatsächlich nicht ausführlich genug um ein sauberes automatisches Tool zu schreiben das alle Details korrekt implementiert. Aber es ist die einzige einigermassen Standardmethode um sowas zu tun, wenn man mal von ActiveX Interface Definitions absieht aber die sind nicht für Standard C Funktionen geeignet sondern basieren spezifisch auf dem OLE Interface Standard der spezial dafür geschaffen wurde um eine viel striktere Definition von Interfaces zu ermöglichen.

Mein Aproach würde das Ganze auf eine ganz andere Art anpacken. Mache ein Interface um diese Libraries das die 2000 Funktionen zusammenfasst in logische Funktionen so dass die Interfacearbeit viel eingeschränkter ist.


RE: DLL Import automatisieren - CS - 13.02.2015 10:53

Hallo GerdW, Hallo rolfk

Vielen Dank für Eure Tips.

Vielleicht noch eine Bemerkung zum Hintergrund der Geschichte.
Genau genommen haben wir eine XmlRpc Schnittstelle und die C DLL + Header sollen den Zugriff auf diese XmlRpc Schnittstelle für viele Programmiersprachen deutlich zu vereinfachen.
Der Code der C DLL wird bereits mittels eines Quellcode-Generators automatisch erzeugt.
Da wir die Schnittstelle auch in Zukunft weiterentwickeln, müssen wir die C DLL sowie die LabVIEW VIs jedesmal neu generieren. Der Update Mechanismus von LabVIEW hilft da ungemein. Erfordert aber trotzdem manuelle Nacharbeit.

Ein autoamtischer VI Generator ist erstmal viel Arbeit; richtig. Man muss ihn jedoch nur an einem Dutzend representativer Funktionen ausgiebig testen.
Danach braucht man nur noch auf einen Knopf drücken => fertig.

Nach einer ersten Recherche, habe ich noch eine Frage:
Kann mir jemand eine gute Einführung oder Tutorial für LabVIEW Scripting empfehlen?

Vielen Dank
Christian