Ich habe mir lediglich zum Test ein subVI geschrieben, dass zwei Zahlen die als uint32 deklariert sind addiert bzw. auf Knopfdruck subtrahiert.
Dieses subVI habe ich dann via Applicationbuilder zu einer DLL kompiliert. Danach wieder in LabVIEW via Call Function Library Node eingebunden und hier hatt die DLL eben eine andere Methodendefinition.
Im Applicationbuilder, Define Prototype steht:
uint32_t ZuDLLwerdendesVI(LVBoolean *Boolean3, uint32_t Numeric, uint32_t Numeric2)
in der erzeugten Headerdatei steht (korrekt):
uint32_t __cdecl ZuDLLwerdendesVI(LVBoolean *Boolean3, uint32_t Numeric, uint32_t Numeric2);
aber bei der Auswahl der Methode der DLL über den "Call Function Library Node":
int32_t ZuDLLwerdendesVI(uint8_t *boolean3, int32_t numeric, int32_t numeric2);
Habe ein bischen gesucht und der BUGFIX 201077 aus der Liste zu LabVIEW2010 könnte zu dem Problem passen:
201077 Application builder silently coerces exported DLL prototypes to default
Allerdings benutzte ich ja 2010 SP1, insofern hätte ich gedacht, das ist gelöst, oder ist das was anderes?