FAQ on C++ to C# Converter





























FAQ for C++ to C# Converter:

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 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), and STL-based string class methods.
 
●  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.

●  STL containers are not converted.  Some conversion may be available in a future release.

●  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 (it 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.

 
Email your questions and comments to:  info@tangiblesoftwaresolutions.com

[Site Map]        [Home]


Copyright © 1997 - 2008 Tangible Software Solutions Inc.