C-DLL, Speicherüberschreibung, Arraygröße
Hallo,
ich arbeite gerade daran, externen C-Code als DLL über den Call-Library-Function-Node in LV einzubinden.
Nun habe ich ein Problem mit Speicherüberschreibung.
Ich übergebe ein Array der Länge n an den CLFN, die DLL macht ein Array der Länge 2*n daraus und LV stürzt ab.
Leider kann ich das Ausgabe-Array im C-Code nicht allokieren, da (LabVIEW dann zwar nicht mehr abstürzt aber) das C-Programm nicht mehr das macht, was es soll.
Der Quellcode stammt nicht von mir, sondern ist aus den Numerical-Recipes für C übernommen. Weil ich noch nicht wirklich programmiert habe, verstehe ich diese Routine auch nicht völlig. An sich (unabhängig von LV) funktioniert sie aber.
Nun meine Frage:
Kann ich das Problem innerhalb von LV lösen, ohne die C-Routine zu ändern?!
"Build Array" nützt nichts und
"Initialize Array" kann ich aufgrund unterschiedlicher Datentypen...
("Array element conflict: You have connected an array data type to its element data type. This type conflict may be resolved by indexing the array to access individual elements of the array. Check for a tunnel on a loop that has indexing incorrectly enabled.
The type of the source is 1-D array of
single [32-bit real (~6 digit precision)].
The type of the sink is double [64-bit real (~15 digit precision)].")
...nicht verbinden.
Hoffe auf Hilfe...
Gruß
Pacco
Der Fehler sitzt immer vor der Maschine.
[altes Schneidersprichwort]
|