Extremely responsive, personalized customer support
Easy to use
Produces helpful notes, warnings, and 'to do' comments
Excellent learning tool for those new to VB.NET from C++ backgrounds
The Most Comprehensive C++ to VB.NET Converter
Converts all versions of C/C++ code: C, C++, C++11, C++14, and C++17
Numerous conversion and formatting options
Handles #define, #include, typedef, default parameters, arrays, and more
Excellent conversion of function pointers from C++ to VB.NET
Allows custom replacement of library functions to instance or static methods
Allows custom replacement of strings in the final converted code
Accurate even with poorly formatted C and C++ code
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.NET 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.NET,
but it is just the first step. Code that is heavily dependent
on pointer manipulation is better left in C++.
Q: Can the converter produce VB6 code?
No. Only VB.NET code is produced.
Q: What about function pointers?
C++ to VB Converter converts function pointer typedefs to delegates.
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::map, std::set, std::list, std::queue,
and std::stack. A few methods of these containers that
have no equivalent are not converted.
Q: Is C++/CLI code converted?
For now it is, but conversion of C++/CLI code is not supported after April 2019.
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 (std::vector, std::map, std::set, std::list, std::queue, and std::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
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 may require further attention.
Template metaprogramming has no good equivalent in VB.
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.
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 commented out with a 'todo' note.
A few operators that can be overloaded in C++ cannot be overloaded in VB. These are marked with a