> Okay, so I have a tentative plan to convert significant amounts of C++ into managed code,
Sorry, I don't want to be annoying, but since you are writing that you
plan to convert significant amounts of code - do you have a
performance improvement plan that _needs_ this conversion to be done?
I know that you currently have COM interfaces for the interop, but
converting them to C++ Interop or IJW (VC++ 2005/2003) doesn't
necessarily solve your performance problems, because your parameters
still need to be marshaled with every cross-managed/unmanaged call.
And even if COM is your culprit, converting your code to unmanaged
DLLs and consume them from C# via P/Invoke might require much less
work, although only you can estimate this.
Therefore - before rewriting everything, you might want to look at the
monitoring stuff in the article I mentioned, maybe you can find out
the actual reason for your performance problems. Or, if these don't
help you at all, at least try out this rewrite on some small portion
of code to measure the benefits. Unless you are really sure that
rewriting will pay off.
> To achieve this I must master compiling my C++ code as managed, and switch from #importing
> COM to #using .NET. This will require exchanging COM smart pointers with __gc pointers.
> (Or I could rewrite to C#, but I suppose that's more work.) Beyond that I don't really know
> what it will take.
Since you are obviously using .NET 1.1 with Managed C++ and IJW, it
will probably take some figuring out of quite bizarre error messages
with lots of underscores in them as well :)
But it is possible, in fact it should just work (IJW = It Just Works).