' schrieb:Der eine Input fürs VI ist ein Pointer aufs Array,
Einen Ausdruck "Input = Pointer auf Array" gibt es in LabVIEW doch gar nicht. Ob du einen Pointer (worauf auch immer) oder den Datenbereich brauchst, darum kümmert sich der Eingang in ein VI doch selbst. ich mach das immer so: "Erstelle Bedienelement am Eingang" und schon weist du was hin muss.
Zitat:Der zweite Input ist die "size of ArrayPointer" also die Länge des Arrays.
"Size of ArrayPointer" ist nicht die Länge des Arrays. Eigentlich ist "size of ArrayPointer" 32Bit. Ich tippe aber darauf, dass hier nicht die Größe des Pointer gemeint ist, sondern die größe eines Datums im Array also U32. Hast du hier mal "Erstelle Konstante am Eingang" ausprobiert? u.U. kommt da ein Enumerator, in dem auch U32 steht.
Zitat:Ich erzeug das Array mit Initialize Array und 3145728 Elementen.
Würde ich für richtig halten.
Zitat:Bei size of ArrayPointer häng ich jetzt den Ausgang vom Array Size an.
Das aber nicht. Hier tippe ich auf U32.
Zitat:Im Call library function stell ich Array Data Pointer ein, weil dann is es ja ein Pointer aufs Array, oder?
Hat das jetzt was direktes mit deiner Frage zu tun? Du hast doch ein VI und keine DLL? Dann ist diese Frage nicht relevant.
Zitat:Der Input fürs VI ist nämlich ein LPBYTE! Das ist soweit ich weiß ein 32 bit langer Pointer aufs Array.
Ein LPByte ist ein Pointer auf ein Byte, also ein U8 bzw. I8, aber kein Pointer auf ein U32/I32. LPByte beißt sich mit deiner Angabe über U23 für die Breite der Daten.
Zitat:Ist das wenn ich Array Data Pointer bei der Übergabe einstelle ein Pointer aufs erste Element, weil das sollte es sein!?
Ich würde ja sagen, solange LV das Programm überhaupt starten kann und solange da kein Konvertierungspunkt vorhanden ist,
muss der Datentyp richtig sein.
Zitat:Und der Speicher fürs Array wird ja beim Initialize automatisch von LabVIEW reserviert oder?
Genau so soll es sein.