LabVIEWForum.de - LabVIEW Datenstrukturen und C++

LabVIEWForum.de

Normale Version: LabVIEW Datenstrukturen und C++
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallöchen ihr lieben,

ich hoffe ihr könnt mir weiter Helfen. Seit Tagen Quäle ich mich hier schon rum :-( und finde keine Lösung.
Ich habe eine in LabVIEW 8.6 geschriebene Dll und versuche dies in C++ einzubinden und eine Funktion aufzurufen.
Das einbinden funktioniert nun benötigt die Funktion diverse Parameter für die im Voraus der Speicher reserviert werden muss. Genau da liegt mein Problem.
Hier mal ein paar Code ausschnitte:

[code]//typedefs
typedef struct {
Was versuchst Du hier eigentlich zu tun? DAQmx hat auch ein C API das Du von einer C++ Applikation viel einfacher aufrufen kannst dann eine LabVIEW DLL die ein LabVIEW spezifisches DLL API aufruft das wiederum dieses C API aufruft.

Ansonsten kannst Du mit LabVIEW Datenstrukturen nur arbeiten wenn Deine Applikation eine LabVIEW Applikation ist. Die Memory Manager Funktionen sind nämlich nur im LabVIEW Kernel implementiert. LabVIEW.lib das diese Funktionen scheinbar bereitstellt ist nur ein einfacher Import Library Wrapper der diese Funktionen zur Laufzeit aus dem LabVIEW Kernel importiert. Da eine C++ Applikation aber keinen solchen LabVIEW Kernel hat, kann das nicht gehen (Eigentlich solltest Du eine Message Box bekommen im Moment wo DSNewHandle() zum ersten Mal aufgerufen wird, die Dir mitteilt dass LabVIEW.lib nicht im Kontext von LabVIEW aufgerufen wurde).

Falls Du doch mit einer LabVIEW DLL arbeiten willst, musst Du die Funktionsparameter so konfigurieren dass es alles Standard C Datentypen sind. Dabei wirst Du Deine komplexen Array of Clusters of Arrays of... aber in mehrere einfachere Parameter aufspalten müssen. Dann kannst Du mit den normalen malloc() Funktionen die nötigen Speicherbereiche allozieren bevor Du diese an die DLL Funktion übergibst.
Hallo rolfk,

zu deiner Frage was ich hier mache? Tja das wüste ich ja auch gerne.
Ich hab keine Ahnung was LabVIEW & Co angeht. Habe eine LabVIEW Dll zusammen mit einem Header bekommen und nun mach halt mal. Huh

Also DSNewHandle wirft keine MessageBox bzw. irgendwelche Fehlermeldung.

Gut dann werde ich zusehen das die Schnittstellen der DLL angepasst werden.
Referenz-URLs