![]() |
Übergeben einer Struktur! - 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: Übergeben einer Struktur! (/Thread-Uebergeben-einer-Struktur) Seiten: 1 2 |
Übergeben einer Struktur! - B.C.I. - 08.01.2007 15:00 Zuerst mal danke für die vielen Posts bis jetzt. Leider gehts auch mit den neuen Ideen nicht. 1D-Array mit 8 Werten ging leider nicht. Ein Cluster passt leider auch nicht mit der DLL zusammen. Die letzten 2 Sätze verstehe ich nicht wirklich. Ich habe 3 Eingänge - 1*32bit --> kein Problem - 3*32bit hintereinander --> ein Problem - 8*32bit hintereinander --> auch ein Problem das ich 32 Byte hintereinander reinschicke ist leider auch nicht möglich, die größte Zahl in LabVIEW ist soweit ich weiß 4 Byte oder? Übergeben einer Struktur! - IchSelbst - 08.01.2007 19:11 ' schrieb:Die letzten 2 Sätze verstehe ich nicht wirklich. Folgendes sollte eigentlich funktionieren: Code: long Unterprogramm(unsigned long Handle, long AIN1, long AIN2, long AIN3, long AIN4, long AIN5, long AIN6, long AIN7, long AIN8, long SCAN, long dio1_direction, long dio2_direction); Wenn tatsächlich die Daten explizit übergeben werden, dann liegen sie genau so auf dem Stack - respektive so werden sie mittels des Stacks an das Unterprogramm in der DLL übergeben. Die C++-Anweisung "typedef struct { .. } _AIN;" definiert praktisch einen Speicherbereich, der 8*U32 breit ist. Durch das Benutzen einer Variablen (hier: Analog) des Typs _AIN wird praktisch ein Speicherbereich von 8*U32 referenziert. Schreibst du als Parameter "Analog" in den Funktionskopf, so "kopiert" der Kompiler automatisch diese 8 U32 auf den Stack. Und ob da nun eine Variable, die aus 8 U32 besteht, oder acht Variablen, von denen jede einzelne aus 1 U32 besteht, kopiert werden - für das Unterprogramm in der DLL ist das egal. Hier gilt: es müssen 8 (respektive eben 12) U32 hintereinander am Stack liegen. Probier das mal aus und sag Bescheid, ob's geklappt hat oder nicht. Übergeben einer Struktur! - B.C.I. - 22.01.2007 09:41 ' schrieb:Folgendes sollte eigentlich funktionieren:Es funktioniert jetzt! Vielen Dank für deine Hilfe! ![]() |