- Q: Are the original
C++ files
altered in any way?
- A:
Your existing code is left completely intact. The new
Java 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 Java 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 Java Converter
is intended to reduce the amount of work you'll have to do to
convert code to Java, 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).
-
- Q: What about MFC
and ATL resources?
- A:
C++ to Java Converter
does not convert MFC or ATL resources.
-
- Q: What about STL
Containers?
- A:
C++ to Java 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.
●
There are no
simple equivalents to C++/CLI delegates and events in Java, so
these must be refactored.
●
Multiple inheritance is not converted since
it is not available in Java.
●
Operator overloading is not available in
Java. These methods are marked with a comment.
●
Function pointers cannot be converted to Java
since Java lacks true delegates.
●
Since Java lacks a preprocessor, all code
dependent on conditional compilation needs to be refactored so
that the functionality can be achieved in other ways. You
can avoid this if you choose to target the NetBeans preprocessor
(C++ to Java Converter includes an option for this).
●
C++ templates are converted to, but are only
roughly equivalent to, Java generics. These will likely
require further attention.
●
Bit-by-bit copying of objects via the
assignment operator is not the default in Java. 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.
●
Java does not allow embedded assembly
instructions. These are marked with a comment.
●
Types cannot be declared with methods in Java.
These are marked with a comment.
●
There is no equivalent to friend functions or
friend classes in Java. These are marked with a comment.
●
Unions and bit fields have no elegant
equivalent in Java. Unions are converted to classes and
marked with a comment.
|