Try putting the safearray in a VARIANT with CA_VariantSetSafeArray and returning the VARIANT instead of the safearray. Something like:
VARIANT* getAmplitudes()
{
VARIANT vArray;
CA_Array1DToSafeArray (Amplitudes, CAVT_DOUBLE, iterations, safeArray);
CA_VariantSetSafeArray (&vArray, CAVT_DOUBLE, safeArray);
return &vArray;
}
Best Regards,
Chris Matthews
National Instruments