INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

LabVIEW Datenstrukturen und C++



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!

28.06.2010, 13:50
Beitrag #1

Davi Offline
LVF-Neueinsteiger


Beiträge: 2
Registriert seit: Jun 2010

8.6
2010
de


Deutschland
LabVIEW Datenstrukturen und C++
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 {
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
29.06.2010, 11:48
Beitrag #2

rolfk Offline
LVF-Guru
*****


Beiträge: 2.302
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
LabVIEW Datenstrukturen und C++
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.

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.06.2010, 12:11
Beitrag #3

Davi Offline
LVF-Neueinsteiger


Beiträge: 2
Registriert seit: Jun 2010

8.6
2010
de


Deutschland
LabVIEW Datenstrukturen und C++
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.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Gehe zu: