Closed richardeakin closed 6 years ago
Update on this: we found that the problem could be avoided if you set rt::BuildSettings().linkAppObjs( false )
, which indicates that some other .obj file still had the old symbol of the reloadable class. In this case, it was WispSimTest.obj
(the 'host' object) that contained symbols also in WispController.dll
.
This should be fixed, let me know if you're still seeing something wrong.
@simongeilfus is aware of this issue but I wanted to document it here. I've seen it in two very different scenarios, and unfortunately it doesn't seem to be a consistent problem. The problem is that somehow the runtime version is expected to have overloaded operator new and delete, but currently these only exist on the statically compiled class. Resulting error message:
We thought it might be that
RT_COMPILED
wasn't defined for the reloaded version, but it appears that it is as expected. To test (and after finding the Compiler's verbose flag that you need to enable to see the output), I add the following to my header... and
RT_COMPILED
is always defined during the runtime reload.We think this problem might go away after a few updates Simon has planned, which would make it so the static and RT compiled versions of a class contain the same overloaded methods (perhaps their implementation is different? I don't know).