Please see my comment to the question. You should think about it first.
The whole idea of "conversion" from C++ to C# is wrong.
There is no such thing as "conversion". The languages are different in their nature, work on different platforms, on different types of platforms, using very different concepts. One could not define what is a "conversion" or even a translation. However, from the standpoint of a particular application, you can always somehow translate the code, or re-implement it using old code as a reference; it totally depends on the application and requirements.
In all cases, before doing so, you should think about
the following alternatives:
1) use C++ code,
2) use combination of C++ code, export some function and use them in your C# project via P/Invoke,
3) translate your C++ code into C++/CLI and use it as the .NET assembly;
4) translate your C++ code into mixed-mode (managed + unmanaged) project using C++ and C++/CLI, re-use most of your old C++ code, wrap the methods or even classes you need in C++/CLI managed "ref" classes and reference this as a regular .NET assembly in any other .NET projects.
Don't tell us "it must be" before you really understand all the alternatives and the techniques involved. You cannot consider your decision as valid or even relevant before you understand it.
In you need to learn P/Invoke, please see:
http://en.wikipedia.org/wiki/Platform_Invocation_Services[
^],
http://msdn.microsoft.com/en-us/library/Aa712982[
^].
This CodeProject tutorial article can also be useful:
Essential P/Invoke[
^].
Information on C++/CLI:
http://en.wikipedia.org/wiki/C%2B%2B/CLI[
^],
http://www.ecma-international.org/publications/standards/Ecma-372.htm[
^],
http://msdn.microsoft.com/en-us/library/xey702bw.aspx[
^],
http://www.gotw.ca/publications/C++CLIRationale.pdf[
^].
—SA