LabVIEWForum.de
C-struktur inLabVIEW einbinden - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: DLL & externer Code (/Forum-DLL-externer-Code)
+---- Thema: C-struktur inLabVIEW einbinden (/Thread-C-struktur-inLabVIEW-einbinden)



C-struktur inLabVIEW einbinden - Olmor - 20.07.2009 15:21

Hallo,

ich habe mehrere dll-Funktionen, die ich in LabVIEW verwende, unter anderem die folgende


int TC4SetFnSeqSettings(struct T_FnSeq *p_fnseq)

mit der C-Struktur:

struct T_FnSeq
{
unsigned int Trigger;
unsigned int EndAction;
double Delay;
unsigned int Repeat;
unsigned int Enabled;
int GeneralEnable;
char name
};


Mein Frage: Was muss ich bei der "Call library function" als type und data format angeben? Und übergebe ich die Struktur an mein "Call library function node" als Cluster?

Vielen Dank im Voraus für eure Hilfe.

Gruß Olmor


C-struktur inLabVIEW einbinden - RoLe - 20.07.2009 15:45

Kennst du das LVF-Tutorial: Einbinden einer DLL in LabVIEW


C-struktur inLabVIEW einbinden - Olmor - 21.07.2009 08:02

Danke für die schnelle Antwort,
doch in diesem Tutorial ist nur ein Beispiel einer Struktur, deren Elemente alle vom selben Typ sind.
Was muss ich aber einstellen, wenn ich wie oben geschrieben verschiedene Typen habe?

Gruß Olmor


C-struktur inLabVIEW einbinden - rolfk - 21.07.2009 08:39

' schrieb:Danke für die schnelle Antwort,
doch in diesem Tutorial ist nur ein Beispiel einer Struktur, deren Elemente alle vom selben Typ sind.
Was muss ich aber einstellen, wenn ich wie oben geschrieben verschiedene Typen habe?

Gruß Olmor

Im Prinzip dasselbe nur musst Du Dir den Cluster halt so aufbauen wie in der Deklaration sichtbar. Du hast Glück da in dieser Struktur keine Alignmentprobleme auftreten also kannst Du die entsprechenden Controls einfach in der richtigen Reihenfolge in den Cluster stopfen. Nur am Ende scheint was falsch gegangen zu sein bei der Übertragung der Syntax.

Zwar kann da eine einfache char Variable sein aber der Name dieses Elements lässt darauf schliessen dass es doch eher einen String ist. Und da gibts zwei Möglichkeiten wie der in der Struktur eingebaut ist. Das Semikolon fehlt ohnehin also tendiere ich dazu dass da etwas am Ende der Zeile weggefallen ist und Variante 1 am wahrscheinlichsten ist.

1) char name[x]; wobei x eine Zahl ist. Dann hast Du Glück da der String im Cluster inlined ist und musst Du innerhalb des Clusters einfach einen anderen Cluster einsetzen mit x uint8 Elementen.

2) char *name; das wäre Pech da der String als Pointer in der Struktur anwesend ist und das ist etwas das für den LabVIEW DLL Anfänger einfach etwas zu schwierig ist.

Rolf Kalbermatter


C-struktur inLabVIEW einbinden - abrissbirne - 24.07.2009 11:08

C:ProgrammeNational InstrumentsLabVIEW x.xexamplesdlldata passing

Vll. hilfts