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 

Pointer auf Array mit Labview übertragen und darstellen



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!

02.07.2013, 19:16 (Dieser Beitrag wurde zuletzt bearbeitet: 02.07.2013 19:18 von rolfk.)
Beitrag #3

rolfk Offline
LVF-Guru
*****


Beiträge: 2.317
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
RE: Pointer auf Array mit Labview übertragen und darstellen
(02.07.2013 10:24 )lupus022 schrieb:  Hallo,
ich habe folgende Problemstellung:
Ich habe eine cpp-DLL, aus der mir eine Funktion einen Pointer auf ein 2D-Array mit Werten übergibt. Dieses Array würde ich gerne in Labview graphisch darstellen (Übergabe der Breite und Länge des 2D-Arrays ist schon geregelt). Wie mache ich denn das am dümmsten? Kann LabView über den Pointer das Array auslesen? Falls nein, wie übergebe ich das Array sonst am besten?
Vielen Dank

2D Array in C(++) ist sehr undeutlich. C kennt eigentlich keine spezifischen Arraytypen anders dann ein Pointer auf einen Speicherbereich.

Als C Programmierer hat man dann die Wahl um eine von vielen möglichen Varianten zu wählen. Wenn alle Reihen und Kolonnen im 2D Array gleich gross sind ist es am effizientesten wenn man das 2D Array als 1D Array im Speicher ablegt met Reihen * Kolonnen Elementen. Auch hier hat man wieder die Wahl ob man das Array als Reihe * Kolonne oder Kolonne * Reihe im Speicher ablegt.

Wenn die Länge der Reihen oder Kolonnen nicht konstant is, ist es besser um das Array als ein Array von Pointern auf 1D Arrays abszupeichern. Das ist aber dann sowieso Library spezifisch, da der Benützer eines solchen Arrays genau wissen muss welcher Allocator gebraucht wurde um das Array nach Gebrauch auch wieder korrekt freigeben zu können. Und das kann sehr kompliziert sein. malloc() in Library X braucht nicht kompatibel zu sein mit dem free() dass der Aufrufer in seiner Library oder Applikation benützt wenn nicht beide mit der gleichen Compilerversion kompiliert wurden und wird noch zusätzlich kompliziert wenn eine oder beide Komponenten die C Runtime Library statisch hineinlinken.

Der ganzen Rede kurzer Sinn: Erwähnen dass Du ein 2D Array hast ist leider absolut nicht genug Information, um Dir einen guten Rat zu geben, wie dieses in LabVIEW einzubinden wäre!

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
Antwort schreiben 


Nachrichten in diesem Thema
RE: Pointer auf Array mit Labview übertragen und darstellen - rolfk - 02.07.2013 19:16

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Datenübergabe an DLL Pointer to Pointer Reiling 2 10.244 02.02.2018 10:59
Letzter Beitrag: Reiling
  Absturz durch unzulässige Pointer VS_03 3 10.943 28.10.2016 18:32
Letzter Beitrag: VS_03
  dll mit Pointer auf komplexe Struktur einbinden Wedgewood 11 17.996 27.04.2014 23:44
Letzter Beitrag: Wedgewood
  Pointer und MoveBlock OXO 4 8.837 03.06.2013 16:31
Letzter Beitrag: OXO
  Pointer auf Subarray übergeben Event Horizon 5 7.948 15.07.2012 10:21
Letzter Beitrag: rolfk
  DLL-Einbindung, Struct mit verschiedenen Datentypen als Pointer übergeben hawk72 4 11.624 11.05.2012 14:41
Letzter Beitrag: hawk72

Gehe zu: