- Q: Are the original
C++ files
altered in any way?
- A:
Your existing code is left completely intact. The new
C# files are written to the new location that you specify.
- Q: What is the conversion
accuracy?
- A:
Our accuracy is the highest in the industry, but there will be
significant adjustments required for all but the most trivial
conversions. C++ code is much more complex than C# code,
so there are no direct equivalents for many aspects of C++.
Read the rest of the FAQ to get an idea of a few things that are
not converted. C++ to C# Converter
is intended to reduce the amount of work you'll have to do to
convert code to C#, but it is just the first step. Code
that is heavily dependent on pointer manipulation is better left
in C++.
-
- Q: What type of code
can be converted?
- A:
C, C++, Managed C++ (VC++ 2003), and C++/CLI (VC++ 2005 and
above).
Conversion accuracy will be highest for C++/CLI code.
-
- Q: What about MFC
and ATL resources?
- A:
C++ to C# Converter
does not convert MFC or ATL resources. We recommend RC
Converter from DudeLabs for this: http://www.dudelabs.com.
-
- Q: What about STL
Containers?
- A:
C++ to C# Converter
converts most references to std::vector, std::list, std::queue,
and std::stack. A few methods of these containers that
have no equivalent are not converted.
-
- Q: What are the most common
adjustments necessary after conversion?
- A:
-
●
Most C/C++
library function calls are not converted. However, we do
convert a subset of the C-based
string, keyboard I/O, math, and utility function calls, and some of
the C++
keyboard I/O methods (cout and cin), STL-based string class methods,
and STL containers (vector, list, queue, and stack).
-
-
●
Some pointer
and address manipulation may remain in the converted code.
●
Multiple inheritance is not converted since
it is not available in C#.
●
C++ templates are converted to, but are only
roughly equivalent to, C# generics. These will likely
require further attention.
●
Bit-by-bit copying of objects via the
assignment operator is not the default in C#. We attempt
to detect these cases and convert the assignment to
a call to either the copy constructor (if used in a variable
initialization) or the converted assignment operator overload (which is
converted to a 'CopyFrom' method) and also provide a 'Warning' comment.
●
C# does not allow embedded assembly
instructions. These are marked with a comment.
●
Types cannot be declared with methods in C#.
These are marked with a comment.
●
There is no equivalent to friend functions or
friend classes in C#. These are marked with a comment.
●
Unions and bit fields have no elegant
equivalent in C#. Unions are converted to structs and marked with a comment.
Simple unions are converted using the StructLayout and
FieldOffset attributes.
●
Many operators that can be overloaded in C++
cannot be overloaded in C#. These are marked with a
comment.
|