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