Assuming that a NULL pointer is really a 0x0 is somewhat bold. Especially with the segmented Intel architecture (OK, no longer en vogue). At least it is not good programming. And splitting the whole process in two DLL's is not ideal either. What if something happens between call 1 and 2?
Two options that I would favor:
1) Have a second parameter in the call giving a maximum stringlength and provide an empty buffer at entry. Then return the actual stringlenth and clip the string accordingly in labview.
2) Use Labview(Pascal)-strings, which have a length field included and re-allocate the buffer inside the DLL using CIN functions.
Gabi
7.1 -- 2013
CLA