cBuffer = REPL(CHR(0), 80) * * blah, blah woof, woof * retval =MyDLL(,,@cBuffer) LOCAL i, ArrayOfDoubles[10], nPosn FOR i = 0 TO 9 nPosn = i*8 + 1 ArrayOfDoubles[i+1] = DoubleToNum(SUBST(cBuffer,nPosn,8)) ENDFORThat should populate the memvar array ArrayOfDoubles with the 10 values returned.
nLongInteger = DWORDToNum(SUBST(cStructureHoldingLong,nPositionofLong,4))If the Long is passed as a parameter rather than being embedded in a structure, then it will be handled as a 32 bit integer value without the need to convert. If you need to convert an integer to the string representing the Integer to concatenate into a structure, you'd use NumToDWORD():
cDWORDString = NumToDWORD(nMyIntegerValue)See my postings on the Wiki (htp://fox.wikis.com) entitled "Pointers on Pointers" for more details.