Personally I would recommend turning it around. It sounds like the C++ code is primarily acting as a device driver with some advanced processing. In that case, you could do the following...
1. Build the C++ code into a DLL.
2. Expose a set of extern C functions to configure the card from LV.
3. Expose extern C functions for "start" and "stop". These could spin off the acquire/process/log in a background thread inside the DLL.
4. Have this background thread update a data block (need some thread protection)
5. Expose a set of extern C functions that read from this data block.
Now you can use the Call Library Node from LV to call these various extern C functions (very easy to do). Also, your UI can provide the knobs, buttons, etc. that allow the user to configure the card to acquire the way they want. Then LV calls down into the DLL to get the data as needed and display it. You could even have LV display the logged data if you want.
What do you think? I'd be happy to go into more detail on any of this if you want.