Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
ich hab plötzlich folgendes Problem:
ich rufe aus einer DLL eine Funktion auf, plötzlich stehen die Funktionsnamen in der Auswahlliste alle doppelt.
sieht etwa so aus:
FunktionA
FunktionA-2
FunktionB
FunktionB-2
...
Wenn ich eine der doppelten Funktionen auswähle, steht im Funktionsprototyp-Fenster:
FunktionB@8
Löschen und neuerstellen hat nix gebracht. Auch bei früher erstellten Funktionsaufrufen (selbe DLL) ist dieses Phänomen jetzt zu beobachten (bisher waren die in Ordnung)
Noch eine Frage:
wenn ich eine andere DLL lade, stimmen die Funktionsaufrufe. Nur wenn ich die fragliche Dll wieder aufrufe, sind alle Funktionen doppelt. Wird die dll irgendwie/-wo dauerhaft in LV zwischengespeichert?
Ich hab die Dll ja nicht bearbeitet, reboot hat nix gebracht...
Problem gelöst. Hab grad mit dem DLL-ersteller geredet.
Diese DLL enthält die Funktionen wirklich doppelt, das ist wohl notwendig für verschiedene Programmiersprachen (LV / Delphi / c++...).
Warum die Funktionen im LabVIEW-knoten mal richtig (nur einfach) dargestellt werden und mal doppelt, ist etwas unklar...aber nicht wichtig genug, mehr Zeit zu investieren.
Die Funktionsnamen mit @# wobei # eine ein- oder zweistellige Zahl ist sind die gemäss Microsoft Visual C dekorierten Funktionsnamen mit stdcall calling convention.
Entweder hat Deine DLL also jetzt eine Version der APIs die als stdcall exportiert wird, nötig zum Beispiel bei älteren VisualBasic Versionen, und eine die als cdecl exportiert werden. LabVIEW kann mit beiden umgehen aber manche Programmierumgebungen bieten diesen Luxus nicht.
Oder die -2 APIs verwenden andere Parameter, eventuell ebenfalls nötig um bestimmte Programmierumgebungen zu unterstützen.