' schrieb:wenn ich das 1. wähle und mir 2 dimensionen auswähle, funktioniert das schon fast. kann dann aber nur die 1. zeile bearbeiten, LabVIEW erzeugt nämlich diesen c-code : long invert(long bild[], long ausg[]) . bekomme in LabVIEW aber wieder nen 2d array raus.
wie komme ich an die anderen zeilen?
wenn ich array-handle auswähle läuft gar nix, bekomm "__declspec(dllexport) long invert(long bild[], long ausg[]); " dann nich kompiliert..
Nachtrag zu gestern, ich hab mal in meinen Studien-Zeit-Kenntnissen von C rumgekramt:
Wär mir doch völlig egal, wenn die Definition innerhalb C nur ein 1D-Array erwartet. Schließlich wird nur der Zeiger auf das erste Array-Element übergeben, und dann folgen alle weiteren Element schön brav hintereinander im Speicher (auch bei einem 2D-Array). Somit kommst du über Zeigerarithmetik in C hervorragend an alle Elemente dran, auch wenn's in LabVIEW als 2D-Array definiert ist, also Bsp:
Array 2D in LabVIEW hat Größe (m,n). Du übergibst das als Pointer to Array, und zusätzlich die Größen m & n.
Dann kommst du in C an das Element (i,j) so dran:
Code:
*(array+i*m+j)
oder
*array[i*m+j]
Gruß, Jens
EDIT: Falls ein C-Profi feststellt, dass ich Schmarrn erzählt habe, bitte ich um Korrektur!