In previous version of Powerbasic (in which all of our examples were written) you could declare an array passed into a DLL like this:
out_array AS DOUBLE PTR
However, PowerBasic 8, it must be declared like this:
BYVAL out_array AS DOUBLE PTR
This new notation says that the pointer is being passed by value, even though the array itself is being passed by pointer. This new notation was actually accepted by PB7 as well.