' schrieb:Also die Änderung von ** auf * bringt nur folgenden Fehler hervor:
"error C2109: Index erfordert ein Array oder einen Zeigertyp"
Du hast das aber mit dem Source, wie er in deinem ersten Posting hier steht, probiert? Und das geht nicht?
Zitat:Inzwischen habe ich aber auch mal Beispiele zur Übergabe an eine DLL von NI selbst gefunden
Ja, guck beim ersten Code. Da geht es auch mit nur einem Stern. Und beim zweiten scheint es ein Handle zu sein.
Zitat:Außerdem wäre es sicherlich auch gut zu wissen wo der Unterschied zwischen dem Array2D und Array2DHandle genau liegt.
Bei ersterem wird ein Pointer auf Daten übergeben, beim zweitem ein Pointer eben auf einen Handle. In dem Handle steht dann der Pointer auf die Daten. Willst du damit auf die Daten zugreifen, musst du zuerst auf den Handle zugreifen und dort dann den Pointer für die Daten holen. Handle ist aber so eine Sache. Ein LV-ArrayHandle sieht eben so aus, wie im zweiten Code. Im Handle würde dann auch noch drinnstehen, wie viele Dimensionen es gibt und wie groß die sind. Sogesehen enthält der Handle die Steuerinfomationen zum Feld - der Datenzeiger zeigt eben nur auf die Daten. Ob es in C++ einen ähnlichen Handle gibt oder ob der da ganz anders aussieht weiß ich nicht.
Probier halt einfach mal ganz gemein aus und übergib einfach einen ArrayHandle - auf das Teil mit den zwei Sternen. Mehr als abstürzen kann er ja nicht.
Ich selbst nehme immer einen Zeiger auf Daten und zähle den (in der DLL) dann "manuell" hoch. Dazu muss ich dann zwar den tatsächlichen Arrayindex selbst berechnen, aber dafür entfallen halt die Probleme mit den unterschiedlichen Datentypen in LV und C++.