FAQ for C++ to VB Converter
Q: Are the original C++ files altered in any way?
Your existing code is left completely intact. The new VB (.NET) files are written to the new location that you specify.
Q: What is the conversion accuracy?
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 VB 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 VB Converter is intended to reduce the amount of work you'll have to do to convert code to VB, 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?
C, C++, C++0x, 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?
C++ to VB Converter does not convert MFC or ATL resources.
Q: What about STL Containers?
C++ to VB 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?
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, STL-based string class methods, and STL containers (vector, list, queue, and stack).
Some pointer and address manipulation may remain in the converted code.
VB does not allow assignments within expressions, but C++ does (e.g., while ((x = y()) > 0) assigns a value to x as part of an expression). C++ to VB Converter will convert some cases, but will mark other more complex cases with a "ToDo" comment. You must manually adjust these.
Some reference type comparisons are converted, but you will need to manually change some equality symbols to "Is". The VB compiler makes these adjustment requirements obvious.
Multiple inheritance is not converted since it is not available in VB.
C++ templates are converted to, but are only roughly equivalent to, VB generics. These will likely require further attention.
Bit-by-bit copying of objects via the assignment operator is not the default in VB. 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.
VB does not allow embedded assembly instructions. These are marked with a comment.
Types cannot be declared within methods in VB. These are marked with a comment.
There is no equivalent to friend functions or friend classes in VB. These are marked with a comment.
Unions and bit fields have no elegant equivalent in VB. Unions are converted to Structures and marked with a comment. Simple unions are converted using the StructLayout and FieldOffset attributes.