Last time I work on a mix code base is about 3 years ago, and the complexity introduced in by interop and marshal totally defeat the purpose of using managed code as rapid development tool.
using managed c++ as glue might help a little bit since the IJW feature it provide, it make calling the functions with simple parameter easier. But try to access the complex data structure across the managed and unmanaged boundary is still a nightmare.
Not sure what exactly the problem you are facing
here is some examples/explanations which might be helpful