After some more investigation, I have a strong suspicion that the problem is caused by not building both modules, the runner and the
test DLL with the DLL runtime library. There is a known issue with the std library and heap corruption when used across the DLL
boundary. This is probably the reason the DLL call code was removed?
The only solutions I can think of are:
a) Re-build all of my production code into the test DLL so it can link to the DLL runtime.
b) Put all the test-running logic inside the DLL and use listeners to track the state (performing the appropriate copies to avoid
passing std::string instances across the DLL boundary.
I anyone has found any other solutions, or I am way off base, please chime in.
Thanks.
|