I have a Labview 8.2-built executable "A" that a Labview program "B" on the same machine communicates with via DataSocket. I occasionally need to read variables in A from outside, including an image. B is not available at the build time of the executable, so using shared or global variables does not seem to be an option. DataSocket works fine for transmitting many data types, but if I try to transmit a Vision 8.2 image reference, the reference becomes invalid in the process. I can send the image by converting it into a 2D array and passing that, but the process is too slow for my application. I feel the slowness is actually coming from the DataSocket process itself rather than the conversion, but at any rate it would be much more efficient to just pass a reference to the image in memory. IMAQ GetImagePixelPtr is the kind of thing I'm looking for, but I'm not working in C at all and there doesn't seem to be a way to create a proper image reference once one has such a pointer. Is there a way to recreate the reference and not have to pass the whole image content through DataSocket?
The attached example code is my attempt to pass an image reference through DataSocket, but it doesn't return a valid reference even from within the same VI.