(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.