I agree that reentrancy isn't the best answer. And in my case, it
isn't an answer at all since keypresses aren't dealt with.
In my WrapperVI, I was passing the SubVI name as a string to the Open
VI Reference. Since, at the time, I had the SubVI statically
placed in the MainVI, it was loaded into memory already.
So I guess you are right: I will not be able to do it that way
and I'll need to open the reference with a path at both points in code
(where I call the SubVI directly, and where I call it in the
WrapperVI). That is where the "unclean" code is going to come
in. I'll have to use two comepletely different, non-correlating
paths depending on whether I'm running the code in the development
system or in the run-time engine. I do have a VI that I use to
properly determine the path to the top-level VI whether it be in an
LLB/EXE or not, but that won't keep me from having to use some
hard-coded paths. I hate hard-coded paths.
I'll try it out and experiment some. Thank you for your help so far.