Arran,
There are two ways you could go about this.
The first would be to create a cluster with the same data types as a SAFEARRAY and use the to G DATA vi.
Here is the structure for a SAFEARRAY:
typedef struct tagSAFEARRAY
{
USHORT cDims;
USHORT fFeatures;
ULONG cbElements;
ULONG cLocks;
PVOID pvData;
SAFEARRAYBOUND rgsabound[ 1 ];
} SAFEARRAY;
So you could make a cluster with these same data types in it, in the same order. A USHORT is an unsigned short (U8), and ULONG is unsigned long (U32) and PVOID is a pointer to the data and SAFEARRAYBOUND is another cluster with this structure:
typedef struct tagSAFEARRAYBOUND
{
ULONG cElements;
LONG lLbound;
} SAFEARRAYBOUND;
Here's a web page that describes all the different paramters:
http
://msdn.microsoft.com/library/wcedoc/wcemfc/struct_25.htm
The second is possibly the better/easier way to do this. You could write a wrapper DLL in C code that just passes out the array, which is all you really care about. That way you wouldn't need to worry about creating the cluster just right.
Regards,
Cyril Bouton
Applications Engineer
National Instruments
Cyril Bouton
Active LabVIEW Developper